JP6571193B2 - クロネッカー積を使用するデータアダプティブ圧縮およびデータ暗号化 - Google Patents

クロネッカー積を使用するデータアダプティブ圧縮およびデータ暗号化 Download PDF

Info

Publication number
JP6571193B2
JP6571193B2 JP2017529977A JP2017529977A JP6571193B2 JP 6571193 B2 JP6571193 B2 JP 6571193B2 JP 2017529977 A JP2017529977 A JP 2017529977A JP 2017529977 A JP2017529977 A JP 2017529977A JP 6571193 B2 JP6571193 B2 JP 6571193B2
Authority
JP
Japan
Prior art keywords
matrix
digital data
entry
define
remainder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017529977A
Other languages
English (en)
Other versions
JP2017532919A (ja
Inventor
アブドエルクリム ブローイヒヤ
アブドエルクリム ブローイヒヤ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nova Southeastern University
Original Assignee
Nova Southeastern University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nova Southeastern University filed Critical Nova Southeastern University
Publication of JP2017532919A publication Critical patent/JP2017532919A/ja
Application granted granted Critical
Publication of JP6571193B2 publication Critical patent/JP6571193B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Description

<関連出願についての相互参照>
本出願は、その全体が参照として本明細書に組み込まれる、2014年8月22日に出願された、関連する米国特許出願第62/040,674号の利益を主張する。
本開示は、バイナリファイルサイズを低減するためのシステムおよび方法に関し、特に、行列を使用するファイル圧縮に関する。
特異値分解(SVD)は、各mn×pq行列Mを、m×p行列とn×q行列とのクロネッカー積である最小数の項で、和へと分解するための方法をもたらす。この分解は、Mのシュミット分解として知られている。Mは、分解形状(m,n,p,q)に関して分解されると言える。Mがデジタルファイルを表すと仮定すると、Mの分解からいくつかの項をドロップし、Mに近似する行列を構築するために他の項を使用すると、デジタルファイルの非可逆圧縮を引き起こす。この圧縮方法に加えて、SVDを用いた圧縮として知られる、SVDに基づく別の圧縮方法がある。SVDに基づくあらゆる圧縮方法は、この方法を圧縮に有用とするエネルギー集中特性を有する。SVDを用いると、出力ファイルを構築するために、特異値およびベクトルが記憶されることになる。元の行列の全てのエントリが整数である場合であっても、これらの値およびエントリが必ずしも整数であるとは限らない。したがって、あまりに多くの情報を失うことなしに特異値およびベクトルをコンピュータに記憶することは、ピクセル当たり、オリジナルファイルでピクセルが占めるメモリ空間の量よりもはるかに多くのメモリ空間の量を必要とする。したがって、SVDを用いた圧縮比は、JPEGのような他の既存の圧縮方法により達成される比と比較して望ましいものではない[以下の、引例4〜6を参照]。算術に基づく他の圧縮方式は、QRおよびQLP分解[1A]に基づくアルゴリズムを含む。
本開示の一実施形態において、デジタルデータを符号化するための方法は、非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、ソフトウェアは、整数の定義済みセット内のエントリを用いて、デジタルデータ内のmn×pq行列Mを同定し、左基本行列Aを定義し、右基本行列Bを定義し、基本エントリの位置を記憶するためのパターン行列Pを定義し、行列MにMの出発値を割り当て、行列Aを定義し、行列Bを定義し、eに出発値を割り当て、a)Mの非ゼロエントリdを選択し、b)Pの第eの列に、選択したMの非ゼロエントリの位置(r,c)を記憶し、c)Mから、共通のエントリとしてdを有し、
がパラメータm、n、p、およびqに関するMのBSDにおける項である、2つの行列AおよびBを選択し、d)Aの第eのm×pブロックに、位置がMにおけるAのエントリの位置であるMのエントリを記憶し、e)Bの第eのn×qブロックに、位置がMにおけるBのエントリの位置であるMのエントリを記憶し、f)行列
を算出し、M〜Me+1の所定の誤差しきい値に達した場合には、Me+1を用いてステップ(a)〜(f)を反復し、そうでない場合には、P、AおよびBは集合的に、Mに対応する符号化されたデジタルデータを表し、g)ソフトウェアまたは別のコンピュータを実行するコンピュータのうちの少なくとも1つ上のデジタル記憶域に、符号化されたデータを転送し、符号化されたデータは、ソースデジタルデータよりも少ないデータバイトを備え、ソースデジタルデータの全ての情報およびソースデジタルデータの情報の全ての近似のうちの少なくとも1つを表すように構成される。
その変形形態において、ステップ(a)で選択した非ゼロ数は、ステレオ次数に関して、絶対値がMのエントリの絶対値の最大値である第1のエントリに対応する。
そのさらなる変形形態において、ソフトウェアは、ステップ(c)において、i)qによるcのユークリッド除法を算出して余りjを求め、余りjがゼロである場合、jをqと置換し、次いで、i=(c−j)/q+1を計算すること、およびii)nによるrのユークリッド除法を算出して余りlを求め、余りlがゼロである場合、lをnと置換し、次いで、k=(r−l)/n+1を計算することによって、Mから、2つの行列AおよびBを選択するように構成される。
そのさらなる変形形態において、ソフトウェアは、(i)1〜mの各整数aおよび1〜pの各整数bについて、位置(l+(a−1)n,j+(b−1)q)におけるMのエントリを、位置(a,(e−1)p+b)における左基本行列Aに記憶し、位置(l+(a−1)n,j+(b−1)q)におけるMeのエントリを、位置(a,b)における行列Aeに記憶することによって、ステップ(d)を実行し、(ii)1〜nの各整数aおよび1〜qの各整数bについて、位置(l+(k−1)n,b+(i−1)q)におけるMのエントリを、位置(a,(e−1)q+b)における右基本行列Bに記憶し、位置(l+(k−1)n,b+(i−1)q)におけるMeのエントリを、位置(a,b)における行列Beに記憶することによって、ステップ(e)を実行するようにさらに構成される。
その他の変形形態において、所定の停止値は、デジタルデータの可逆符号化について無限大であり、所定の停止値は、デジタルデータの非可逆符号化について正数であり、P、AおよびBの記憶サイズの和は、Mに対応するデジタルデータの記憶サイズよりも小さく、および/またはAおよびBのエントリの全てがMから抽出され、Pのエントリが整数である。
その別の変形形態において、ソフトウェアは、P、AおよびBを使用してデジタルデータを行列Nとして復号するようにさらに構成され、したがって、ソフトウェアは、Rを、Pの列の数として定義し、Eを、mn×pq行列として定義し、mを、Aの行の数として定義し、pを、Rで除算されたAの列の数として定義し、nを、Bの行の数として定義し、qを、Rで除算されたBの列の数として定義し、eに出発値を割り当て、Pの第eの列から、順序対(r,c)を抽出し、ステップ(c)〜(f)を逆に、ステップ(f)〜(c)として実行し、EのAおよびBのエントリを、Mで占める同じ位置に配置し、AまたはBからのエントリを割り当てられなかったEの全ての値にゼロを埋め、行列EにEの出発値を割り当て、eに出発値を割り当て、a)Pの第eの列から、順序対(r,c)を抽出し、b)位置(r,c)におけるEのエントリdを選択し、c)請求項1のステップ(c)〜(f)の方法を使用して、請求項1の行列AおよびBを回復し、d)e<Rである場合、
を計算し、Ee+1を用いて(a)〜(d)を反復し、e=Rである場合、
を計算するようにさらに構成される。
その他の変形形態において、ステップ(d)において、N=Mである場合、デジタルデータは、データの損失なしに復号されており、N≠Mである場合、Nがデジタルデータに近似し、および/またはMに対応するデジタルデータは、Pを暗号化することによって暗号化される。
そのさらに別の変形形態において、ソフトウェアは、P、A、およびBを使用して、行列Mに近似する行列としてデジタルデータを復号するようにさらに構成され、Mは、デジタルデータ内で同定される複数の行列Mのうちの1つであり、複数の行列Mの各々について、ステップ(a)〜(f)が実行され、デジタルデータは、デジタルデータ全体を表す行列MのサイズSとともに、複数の行列Mに対応するP、AおよびBの集合的な行列によって符号化される。
本開示の別の実施形態において、デジタルデータを符号化するための方法は、非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、ソフトウェアは、Rを、Pの列の数として定義し、Eを、mn×pq行列として定義し、mを、Aの行の数として定義し、pを、Rで除算されたAの列の数として定義し、nを、Bの行の数として定義し、qを、Rで除算されたBの列の数として定義し、eに出発値を割り当て、Pの第eの列から、順序対(r,c)を抽出し、位置(r,c)におけるEのエントリdを選択し、qによるcのユークリッド除法を算出して余りjを求め、余りjがゼロである場合、jをqと置換し、次いで、i=(c−j)/q+1を計算し、nによるrのユークリッド除法を算出して余りlを求め、余りlがゼロである場合、lをnと置換し、次いで、k=(r−l)/n+1を計算し、1〜mnの各整数aおよび1〜pqの各整数bについて、位置(a,(e−1)p+b)におけるAのエントリを、Eの位置(l+(a−1)n,j+(b−1)q)にコピーし、位置(a,(e−1)q+b)におけるBのエントリを、Eの位置(a+(k−1)n,b+(i−1)q)にコピーし、AまたはBからのエントリを割り当てられなかったEの全ての値にゼロを埋め、行列EにEの出発値を割り当て、eに出発値を割り当て、a)Pの第eの列から、順序対(r,c)を抽出し、b)位置(r,c)におけるEのエントリdを選択し、c)qによるcのユークリッド除法を算出して余りjを求め、余りjがゼロである場合、jをqと置換し、次いで、i=(c−j)/q+1を計算し、d)nによるrのユークリッド除法を算出して余りlを求め、余りlがゼロである場合、lをnと置換し、次いで、k=(r−l)/n+1を計算し、e)1〜mの各整数a、および1〜pの各整数bについて、位置(l+(a−1)n,j+(b−1)q)におけるEのエントリを行列Aの位置(a,b)に記憶し、f)1〜nの各整数a、および1〜qの各整数bについて、位置(l+(k−1)n,b+(i−1)q)におけるEのエントリを行列Bの位置(a,b)に記憶し、g)e<Rである場合、
を計算し、Ee+1を用いて(a)〜(g)を反復し、e=Rである場合、符号化されたデータは、
として計算され、h)ソフトウェアまたは別のコンピュータを実行するコンピュータのうちの少なくとも1つ上のデジタル記憶域に、符号化されたデータを転送し、符号化されたデータは、ソースデジタルデータよりも少ないデータバイトを備え、ソースデジタルデータの全ての情報およびソースデジタルデータの情報の全ての近似のうちの少なくとも1つを表すように構成される。
その変形形態において、ソフトウェアは、P、AおよびBを使用してデジタルデータを、Mに近似する行列として復号するようにさらに構成され、Mは、デジタルデータ内で同定される複数の行列Mのうちの1つであり、複数の行列Mの各々について、ステップ(a)〜(f)が実行され、デジタルデータは、デジタルデータ全体を表す行列MのサイズSとともに、複数の行列Mに対応するP、AおよびBの集合的な行列によって符号化される。
その別の変形形態において、各行列Mは、所定のサイズを有し、デジタルデータが所定のサイズにより均等に分割可能でない場合、残りの部分行列Mは、ゼロを用いて所定のサイズにパディングされ、デジタルデータを復号するときに破棄される。
本開示のさらなる実施形態において、デジタルデータを符号化するための方法は、非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、ソフトウェアは、SVDを使用して、PSNR(Ma,M)≧所定値である最低シュミットランクRを用いてmn×pq行列Maを求め、Maを量子化して、エントリが整数である行列Mを求め、左基本行列Aを定義し、右基本行列Bを定義し、基本エントリの位置を記憶するためのパターン行列Pを定義し、行列MにMの出発値を割り当て、行列Aを定義し、行列Bを定義し、eに出発値を割り当て、a)Mの非ゼロエントリdを選択し、b)Pの第eの列に、選択したMの非ゼロエントリの位置(r,c)を記憶し、c)Mから、共通のエントリとしてdを有し、
がパラメータm、n、p、およびqに関するMのシュミット分解における項である、2つの行列AおよびBを選択し、d)Aの第eのm×pブロックに、位置がMにおけるAのエントリの位置であるMのエントリを記憶し、e)Bの第eのn×qブロックに、位置がMにおけるBのエントリの位置であるMのエントリを記憶し、f)行列
を算出し、e<Rである場合、Me+1を用いてステップ(a)〜(f)反復を反復し、e=Rである場合、P、AおよびBは集合的に、Mに対応する符号化されたデジタルデータを表すように構成される。
本開示の別の実施形態において、デジタルデータを符号化するための方法は、非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、ソフトウェアは、整数の定義済みセット内のエントリを用いて、デジタルデータ内のmn×pq行列Mを同定し、2つの部分SおよびSにおける基本シーケンスSを定義し、基本行列Eを定義し、Eのn×qブロック行列の位置を記憶するためパターンシーケンスPSを定義し、行列Aを定義し、行列Bを定義し、行列MにMの出発値を割り当て、eに出発値を割り当て、a)Mの非ゼロエントリdを選択し、b)PSの第eの項に、deの位置(r,c)を含むMeの第eのn×qブロックのおける位置を記憶し、c)Mの第eのn×qブロック行列を、Eの第eのn×qブロック行列に記憶し、辞書式順序に従って、Mの第eのn×qブロックのエントリをSに記憶し、d)qによるcのユークリッド除法を算出して余りjを求め、余りがゼロである場合、jをqと置換し、次いで、i=(c−j)/q+1を計算し、および、nによるrのユークリッド除法を算出して余りlを求め、余りがゼロである場合、lをnと置換し、次いで、k=(r−l)/n+1を計算し、e)1〜mの各整数a、および1〜pの各整数bについて、行列Aの位置(a,b)に、位置(1+(a−1)n,j+(b−1)q)におけるMのエントリを記憶し、辞書式順序に従って、Eの位置(l+(a−1)n,j+(b−1)q)が空白である場合、そこに、同じ位置に配置されたMのエントリを記憶し、シーケンスSに、同じエントリを記憶し、f)行列
を算出し、M〜Me+1の所定の誤差しきい値に達した場合には、Me+1を用いてステップ(a)〜(f)を反復し、そうでない場合には、SおよびSを集合させて、PSおよび形状(m,n,p,q)を用いてMに対応する符号化されたデジタルデータを表すシーケンスSを形成し、g)ソフトウェアまたは別のコンピュータを実行するコンピュータのうちの少なくとも1つ上のデジタル記憶域に、符号化されたデータを転送し、符号化されたデータは、ソースデジタルデータよりも少ないデータバイトを備え、ソースデジタルデータの全ての情報およびソースデジタルデータの情報の全ての近似のうちの少なくとも1つを表すように構成される。
その変形形態において、ソフトウェアは、Rを、PSにおける項の数数として定義し、Eを、mn×pq行列として定義し、Sの第1のRnq個の項を使用して、EのRn×qブロック行列を構築し、PSを使用してR個のブロック行列の位置を同定し、Sから使用した項を削除し、次いで、基本位置を、Eの任意の埋められた位置と呼び、行列MにEの出発値を割り当て、eに出発値を割り当て、a)エントリがMの第eのn×qブロック行列のエントリである行列Bを構築し、辞書式順序に従って、絶対値がBのエントリの絶対値の最大値に等しいBにおける第1のエントリdのMにおける位置(r,c)を計算し、次いで、シーケンスDの第eの項にdを記憶し、b)qによるcのユークリッド除法を算出して余りjを求め、余りがゼロである場合、jをqと置換し、次いで、i=(c−j)/q+1を計算し、および、nによるrのユークリッド除法を算出して余りlを求め、余りがゼロである場合、lをnと置換し、次いで、k=(r−l)/n+1を計算し、シーケンスIの第eの項i、シーケンスJの第eの項j、シーケンスKの第eの項k、およびシーケンスLの第eの項lを記憶し、c)各(a,b)について(ただし、1≦a≦mかつ1≦b≦p)、以下のようにm×p行列Aを構築し、(l+(a−1)n,j+(b−1)q)は、基本位置である場合、Aの位置(a,b)に位置(l+(a−1)n,j+(b−1)q)に配置されたMのエントリを埋め、このEの位置にSの第1の項を埋め、(l+(a−1)n,j+(b−1)q)をEの基本位置としてマークし、d)Aの他の位置にゼロを埋め、f)
を計算し、e<Rである場合、Me+1を用いてステップ(a)〜(d)を反復し、e=Rである場合、行列EにEの出発値を割り当て、eに出発値を割り当て、g)それぞれIの第eの項、Jの第eの項、Kの第eの項、およびLの第eの項であるi、j、k、およびlを計算し、h)1〜mの各整数a、および1〜pの各整数bについて、位置(l+(a−1)n,jにおけるEのエントリを、Aの位置(a,b)に配置し、Eの第eのn×qブロック行列をBに割り当てるように、m×p行列Aを構築し、n×q行列Bが構築され、k)e<Rである場合、
を計算し(ただし、dはDの第eの項である)、Ee+1を用いてステップ(g)および(h)を反復し、e=Rである場合、
を計算し、ただし、行列Nは、出力ファイルの行列であるようにさらに構成されることによって、符号化されたデジタルデータを復号するように構成される。
そのさらなる変形形態において、Mのシュミットランクに達した後、ステップ(f)のステップ(a)〜(d)の反復計算を停止することによって、可逆圧縮が達成される。
そのさらなる変形形態において、PSNR、PEVQおよびSSIMのうちの少なくとも1つを使用することによって、誤差を測定する。
添付図面と併せて考察するときに以下の詳細な説明を参照すると、本開示のより完全な理解、ならびにそれらの付随する利点および特徴がより容易に理解されるであろう。
本開示に係るBSD可逆圧縮の一実施形態の図であり、図解したアルゴリズムは、上から下、左から右へと実行され、図面全体の丸に囲まれた文字は、様々なアルゴリズム間の論理フローパターンを指す。 本開示に係るBSD可逆復元の一実施形態の図である。 本開示に係るBSD非可逆圧縮の一実施形態の図である。 本開示に係る、SVDおよびブロックを使用するBSD非可逆圧縮の一実施形態の図である。 本開示に係る、SVDおよびブロックを使用したBSD復元の一実施形態の図である。 本開示に係る、BSD圧縮および暗号化の一実施形態の図である。 本開示に係るBSD復元の一実施形態の図である。 本開示を実行するためにその一部または全体を使用することができる、コンピューティング機器を示す。
必要に応じて、詳細な実施形態を本明細書に開示するが、開示した実施形態は例にすぎず、以下に記載する説明するシステムおよび方法は様々な形態で実施できることを理解されたい。したがって、本明細書に開示した特定の構造的および機能的な詳細は制限として解釈すべきではなく、単に、特許請求の範囲の根拠として、かつ、ほぼすべての適切に詳細な構造体および機能における本発明の主題を様々に採用するために当業者に教示する代表的な根拠として解釈すべきである。さらに、本明細書で使用する用語および表現は、制限を意図するものではなく、むしろ、概念の理解可能な説明を提供することを意図するものである。
用語「a(1つ)」または「an(1つ)」は、本明細書で使用する場合、1つ以上であると定義される。用語「plurality(複数)」は、本明細書で使用する場合、2つ以上であると定義される。用語「another(別の)」は、本明細書で使用する場合、少なくとも第2のまたはそれ以上であると定義される。用語「including(を含む)」および「having(を有する)」は、本明細書で使用する場合、備える(comprising)(すなわち、オープンランゲージ(open language)と定義される。用語「coupled(結合される)」は、本明細書で使用する場合、「connected(接続される)」と定義されるが、必ずしも直接的である必要も、機械的である必要もない。本明細書では、「ソフトウェア」への言及は、本開示の方法を実施する命令の電子実行を指し、したがって、本開示の方法は、例えば、パラレルプロセッサを含む1つまたは複数の電子プロセッサにより実行される。用語「メモリ値」またはメモリサイズは、不揮発性記憶域内の参照された要素のサイズもまた示すと考えられ得る。
本開示の一実施形態では、デジタルファイルは、行列のシュミット分解を含む方法を使用して圧縮される。本開示は、行列Mにより表すことができる任意のデジタルファイルの可逆圧縮および非可逆圧縮の実行を提供する。可逆圧縮は、Mのいくつかのエントリを記憶してMを回復する装置により達成される。非可逆圧縮は、本開示の方法を、低ランク近似およびブロックによる圧縮を含む他の技法と組み合わせる装置により達成される。別の態様では、装置は、本開示の方法を実行してファイルを圧縮するようにし、一実施形態では、復元プロセスで必要なキーコードをユーザが選択することを可能にするように構成されるソフトウェアを実行する。したがって、本発明は、データ圧縮およびデータセキュリティを可能にする
本開示は、行列のシュミット分解を発見する方法を提供する。本明細書では、この方法をBSD(Bourouihiya Schmidt Decomposition)と称する。行列MのBSDは、Mのエントリ、およびMの分解に関与する各行列の各エントリを計算する基本演算を使用する。本開示は、この事実を使用して、デジタルファイルの可逆圧縮および非可逆圧縮を可能にする。一実施形態では、可逆圧縮は、SVDではほとんど不可能であるが、BSDとSVDとを組み合わせることにより、本発明は、誤差の点で極めてコストが低い、SVDを用いた圧縮が直面する記憶域の問題を解決しながら、非可逆圧縮を可能にする。本開示による圧縮は、JPEGまたはJPEG2000のような、普及している既存の方法と競合する。
本開示は、デジタルファイルの可逆圧縮または非可逆圧縮を達成するBSDの使用、特定の適用例に圧縮方法を適合するために多数のパラメータからユーザが選択できるようにすることを含めて、BSD、SVDを用いた低ランク近似、ブロックによる圧縮、およびデジタルファイルの効率的な非可逆圧縮を達成する他の技法の使用、ならびにデジタルファイルの暗号化の実施形態を提供し、ユーザは、復元プロセスにおいて解読に必要なキーコードを選択することができ、本開示の非可逆圧縮および可逆圧縮とともに、本開示の暗号化法を使用することができる。
デジタルデータまたはファイルの可逆圧縮は、以下のように、BSDを使用して達成されるが、この方法を使用して、非可逆圧縮を達成することもできる。
各mn×pq行列Mは、以下のように記述される。
ただし、Aはm×p行列であり、Bはn×q行列である。当技術分野で、等式(4.1)は、Mのシュミット分解として知られており、Rは、(4.1)の項の数が可能な最小値である場合の(シュミット)ランクである。rank(M)=Rとする。BSDを使用してMを分解する場合、AまたはBにおける各エントリは、k=1,...Rの各々について、Mから抽出されたエントリ、および基本演算を使用して計算される。
実施例1
エントリが0〜255の整数である6×6行列Mについて考察する。したがって、コンピュータにMを記憶するのに必要とされるメモリ空間は36バイトである。この実施例では、BSDを使用して、(3,2,2,3)に関して、すなわち、各項が3×2行列と2×3行列とのクロネッカー積である行列の和へとMを分解する。
、A、BおよびBのエントリは、基本シーケンスS=(9,12,21,24,33,36,28,29,30,34,35,1,4,13,16,25,2,3,7,8)を使用して計算され、これらの項は、Mの基本エントリと呼ばれる(これらのエントリは、Mを太字および下線付きで示される)。基本エントリを選択するための方法は、本明細書の他の箇所に提供される。Mを回復するためには、分解形状(3,2,2,3)、基本シーケンスS、ならびに(AおよびBを配置するために使用される)位置(6,6)と(AおよびBを配置するために使用される)位置(1,1)とを含むパターン行列を記憶する必要がある。20個の基本エントリがあるので、分解形状は4個のエントリを含み、パターン行列は4個のエントリを含み、その場合、圧縮ファイルを記憶するのに必要とされるメモリ空間は28バイトである。したがって、36バイトから28バイトまで、Mの可逆圧縮が達成される。BSDアルゴリズムについての数学的証明は、本明細書の他の箇所に提供される。
SVDを使用してMのシュミット分解を実行した場合、
である。
行列N11、N21、N12またはN22におけるあらゆるエントリは、0〜255の整数ではなく、近似的に計算することしかできない。したがって、これらの行列を記憶することは、Mの可逆圧縮を達成しない。これは、実数の記憶は、圧縮ファイルのサイズを大幅に増大させるからである。
画像圧縮のためにBSDを使用すると、圧縮ファイルを記憶するのに必要なメモリ空間が、オリジナルファイルを記憶するのに必要なメモリ空間よりも大きくなる可能性が低い。実際には、ほとんどの圧縮は、本開示の方法を使用するオリジナルファイルよりも実質的に小さくなる。
実施形態1
図1Aを参照すると、本開示の一実施形態において、デジタルファイルの可逆圧縮が、BSDを用いて達成される。本明細書の他の箇所に記載するように、非可逆圧縮は、同様の方法を用いて達成することができる。
入力ファイルは、分解形状(m,n,p,q)に関して分解されるmn×pq行列Mにより表されると仮定する。圧縮プロセスおよび復元プロセスの過程において、以下の行列およびシーケンスを定義し、計算する。
P:Mのパターン行列。
E:Mの基本行列、これは、mn×pq行列である。
S:鳩の巣原理を使用して構築される、基本シーケンス(鳩の巣原理を使用することは、本明細書で他の箇所に詳述したように、任意であることを理解されたい)。
図1Aを参照して、以下のステップのセットは、MのBSDについて説明する。以下に、第eのセットについて説明するが、eは、1〜圧縮プロセス中に計算されるMのランクの整数である。ステップのこのセットにおいて、mn×pq行列Mを定義する。100において、圧縮プロセスが、M=Mで開始する。
ステップ1:ソフトウェアは、Mのエントリの絶対値の最大値dを計算する。辞書式順序に従って、絶対値がdに等しい第1のエントリdのMにおける位置(r,c)は、パターン行列Pの第e列に記憶される(102)。
ステップ2:ソフトウェアは、qによるcのユークリッド除法を実行し、余りjを求める。余りがゼロの場合、jはqと置換される。次いで、ソフトウェアは、i=(c−j)/q+1を計算する。
ステップ3:ソフトウェアは、nによるrのユークリッド除法を実行し、余りlを求める。余りがゼロの場合、lはnと置換される。次いで、ソフトウェアは、k=(r−l)/n+1を計算する。
ステップ4:1〜mの各整数a、および1〜pの各整数bについて、位置(l+(a−1)n,j+(b−1)q)におけるMのエントリを行列Aの位置(a,b)に記憶する(104)。辞書式順序に従って、Eの位置(l+(a−1)n,j+(b−1)q)が空白である場合、同じ位置にロケーティングされたMのエントリをそこに記憶し、同じエントリをシーケンスSに記憶する(106)。次いで、このエントリをMの基本エントリと称する。
ステップ5:1〜nの各整数a、および1〜qの各整数bについて、位置(a+(k−1)n,b+(i−1)q)におけるMのエントリを行列Bの位置(a,b)に記憶する(108)。辞書式順序に従って、Eの位置(a+(k−1)n,b+(i−1)q)が空白の場合、同じ位置にロケーティングされたMのエントリをそこに記憶し(106)、同じエントリをシーケンスSに記憶する(108)。次いで、このエントリをMの基本エントリと称する。
ステップ6:ソフトウェアは、行列
を計算する(110)。(本明細書の他の箇所に詳述したように、本開示は、
の事実を提供する。)
e+1=0の場合、Mの可逆圧縮が達成される。
e+1≠0である場合、Me+1を用いてステップ1〜6を実行する(114)。
R個のステップの後、プロセスを停止するここで、Rは、Mのシュミットランクである。
図1Cを参照すると、非可逆圧縮プロセスは、同じステップ1〜5のセットを含むが、ステップ1において誤差しきい値を選択し(140)、誤差しきい値を超えるとき、ステップ6の第2のステートメントを、プロセスを停止するステートメントと置換する(142)。
分解形状(m,n,p,q)、パターン行列P、および基本シーケンスSが、圧縮ファイルを構成する。
例えば、ステップ1を「辞書式順序に従って、Mの第1の非ゼロエントリdの位置(r,c)を、パターン行列Pの第eの列に記憶する」と置換することを含む、BSDの他の可能な実施形態がある。様々な実施形態は、異なる圧縮結果につながり得る。
この実施形態に記載する可逆圧縮は、データ行列のサイズがシュミット分解の形状と合致すると仮定する。他の場合には、形状を適合するようにデータ行列が強化され、復元プロセスにおいて追加エントリが無視される。あらゆる行列のサイズと合致する形状((m,n,1,1)など)があることに留意されたい。
実施形態1 復元
図1Bを参照すると、復元プロセスでは、クアドロプル(m,n,p,q)、行列PおよびシーケンスSが入力を構成する(120)。
ステップ1:ソフトウェアは、Pにおける列の数に等しいRを計算する(122)。
ステップ2:e=1からe=Rまで、装置は、各eについて以下のサブステップを実行する(124)。
ステップ2.1:装置は、Pの第eの列から、順序対(r,c)を抽出する。
ステップ2.2:ソフトウェアは、qによるcのユークリッド除法を実行し、余りjを求める。余りがゼロの場合、jはqと置換される。次いで、ソフトウェアは、i=(c−j)/q+1を計算する。
ステップ2.3:ソフトウェアは、nによるrのユークリッド除法を実行し、余りlを求める。余りがゼロの場合、lはnと置換される。次いで、ソフトウェアは、k=(r−l)/n+1を計算する。
ステップ2.4:セットの辞書式順序{(a,b):1≦a≦m,かつ1≦b≦p}に従って、装置は、空白位置(l+(a−1)n,j+(b−1)q)ごとにEを埋めるのに十分なSの第1の項を記憶し、次いで、eについてステップ2.4で使用される項ではなくSの全ての項を含む新たなシーケンスとSを置換する。その後、古いシーケンスを削除し、新たなシーケンスをSと呼ぶ。
ステップ2.5:セット{(a,b):1≦a≦n,かつ1≦b≦q}辞書式順序に従って、装置は、空白位置(a+(k−1)n,b+(i−1)q)ごとにEを埋めるのに十分なSの第1の項を記憶し、次いで、eについてステップ2.5で使用される項ではなくSの全ての項を含む新たなシーケンスとSを置換する。その後、古いシーケンスを削除し、新たなシーケンスをSと呼ぶ。
ステップ3:ソフトウェアは、ステップ2の後に空白であるEにおける各位置に0を埋める(126)。
ステップ4:このステップでは、各e=1,...,Rについて、mn×pq行列Eを定義する。プロセスは、E=Eから開始する。ソフトウェアは、Pの第eの列から順序対(r,c)を抽出し、位置(r,c)におけるEのエントリdを抽出し、以下のサブステップを実行する(128)。
ステップ4.1:ソフトウェアは、qによるcのユークリッド除法を実行し、余りjを求める。余りがゼロの場合、jはqと置換される。次いで、ソフトウェアは、i=(c−j)/q+1を計算する。
ステップ4.2:ソフトウェアは、nによるrのユークリッド除法を実行し、余りlを求める。余りがゼロの場合、lはnと置換される。次いで、ソフトウェアは、k=(r−l)/n+1を計算する。
ステップ4.3:1〜mの各整数a、および1〜pの各整数bについて、位置(l+(a−1)n,j+(b−1)q)におけるEのエントリは、Aの位置(a,b)に配置される。
ステップ4.4:1〜nの各整数a、および1〜qの各整数bについて、位置(a+(k−1)n,b+(i−1)q)におけるEのエントリは、Bの位置(a,b)に配置される。
e<Rである場合、ソフトウェアは、
を計算し、サブステップ 4.1〜4.4を再度行う(130)。
e=Rである場合、ソフトウェアは、ステップ5を実行する。
ステップ5:ソフトウェアは、以下のように、ステップ4で求めた行列を集合させる。
行列Nは、出力ファイルの行列である。圧縮が可逆である場合、N=Mである(132)。圧縮が非可逆である場合、NはMに近似する。
デジタルファイルは、エントリが0〜255の整数であるMにより表されると仮定する。したがって、ファイル中の各ピクセルをコンピュータに記憶するには、1バイトが必要である。分解形状を記憶するためは、4バイトが必要である。基本シーケンスSの項は、Mから抽出され、したがって、Sを記憶するために必要なメモリ空間は、Mを記憶するために必要なメモリ空間よりも小さい。Pのエントリの数は、最小数2mpおよび2nqよりも少なく、Mは、mnpqエントリを計数する。実際には、パターン行列Pは、Mが占めるメモリ空間の1%未満を占める。したがって、BSDを用いた圧縮は、0.99よりも大きな可逆圧縮比を有する。例えば、m=16、n=24、p=8、およびq=16の場合、行列Mのメモリサイズは49,152バイトである。一方、分解形状(16,24,8,16)およびパターン行列Pを記憶するために、260バイト以下、つまり、Mのサイズの0.53%未満が必要である。したがって、圧縮比は、0.994よりも大きい。
多くの場合、分解形状(m,n,p,q)について、いくつかの選択がある。これらの選択は、何らかのタイプの圧縮されるファイルに適合するためにより適切である。例えば、256×256行列を分解するためには、49個の分解形状から選択することができる。
本開示は、クロネッカー積を含む算術計算を使用する。これは、論理的かつ統計的であるハフマン符号化および算術符号化を含む統計モデルおよびビットシーケンスに基づく可逆圧縮法とは区別することができる。本開示は、デジタルデータに適用することができる算術可逆圧縮を提供する。
実施形態2
図2Aを参照すると、第2の実施形態は、BSD、低ランク近似およびブロックによる圧縮を使用して、デジタルファイルの効率的な非可逆圧縮を達成する。出力ファイルの品質を測定するために、ピーク信号対雑音比(PSNR)を使用する。本明細書ではPSNRを品質または誤差の測定として参照するが、例えば、二乗平均平方根、PEVQ(ビデオデータに有利であるPerceptual Evaluation of Video Quality)、およびSSIM(PSNRのような、画像に有利であるStructural Similarity Index Method)と置換され得る、多くの様々なタイプの誤差測定があり、使用される元のデータファイルのタイプに最も適するとき、または場合によっては特定の目的に好適であると見なされるときには、他の測定が選択されることを理解されたい。
入力ファイルは、エントリが[0,255]の整数である行列Mにより表される画像であり、それについて、圧縮ファイルおよび出力ファイルのエントリもまた[0,255]の整数であることを要すると仮定する。したがって、各エントリは、デジタルデバイスに、1バイトで記憶することができる。
圧縮プロセスの場合、入力は、M、Er、しきい値誤差を設定する数、ならびにブロック行列を定義するパラメータm、n、pおよびqを含む。Mのサイズは、mn×pq行列のサイズの数倍であると仮定する。圧縮のプロセスにおいて、Mは、mn×pq個のブロック行列へと分割される。圧縮プロセスの過程において、装置は、パターン行列P、基本シーケンスS、およびランクRのシーケンスを構築する。
ステップ1:Mの高さがmnで分割不可能、または、Mの幅がpqで分割不可能な場合、被整除性に達するために、ゼロの列または行をMに加える(160)。次いで、加えた部分を、復元プロセスにおいて無視する。
ステップ2:ソフトウェアは、画像をブロックに分割する。各ブロックは、mn×pq行列である。hは、これらのブロックの数であると言える(162)。(m,n,p,q)について、BSDを使用する。
ステップ3:各e=1,...,hについて、ソフトウェアは、第eのブロックMに対して以下のステップを実行する。
ステップ3.1:SVDを使用することによって、ソフトウェアは、Mを備えるPSNRがEr以上である全ての行列のうち最も低いランクの可能なRを有する行列Dを計算する(164)。
ステップ3.2:ソフトウェアは、行列Dを切り上げ、エントリが整数である行列Qを取得する。(Qのエントリのほとんとが[0,255]内であるが、少数のエントリはその範囲外であり得る)(166)。
ステップ3.3:実施形態1を使用して、装置は、Qを圧縮し、パターン行列Pおよび基本シーケンスSを計算する(168)。
ステップ3.4:ソフトウェアは、第eのパターン行列の行を、パターン行列Pの行(2e−1)および2eに記憶し、Sの項をSに(Sの最後の項の後に連続的に)記憶し、RをRに記憶する(170)。
クアドロプル(m,n,p,q)、行列P、シーケンスS、シーケンスR、およびMのサイズが、圧縮ファイルを構成する(172)。
実施形態2 復元
図2Bを参照すると、復元プロセスの場合、入力は、クアドロプル(m,n,p,q)、行列P、シーケンスS、シーケンスRおよびMのサイズを含む、圧縮ファイルである(180)。
ステップ1.ソフトウェアは、Rの項の数として、hを計算する(182)。
ステップ2.各e=1,...,hについて、装置は以下のステップを実行して、出力行列の第eのブロックを求める。
ステップ2.1.ソフトウェアは、パターン行列Pの行(2e−1)および2eとして、入力行列から行列Pを抽出し、Rから数Rを抽出する(184)。
ステップ2.2.行列P、数RおよびシーケンスSを用いて、装置は、実施形態1の復元プロセスのステップ2〜5を使用して、元のブロックMに近似するブロック行列Nを構築する(186)。鳩の巣原理を使用して、ステップ2.2において使用した項ではなく、Sの全ての項を含む新たなシーケンスとSを置換する。その後、古いシーケンスを削除し、新たなシーケンスをSと呼ぶ(188)。
ステップ3.ソフトウェアは、1つの行列Nとしてステップ2で構築したh個のブロックを集合させる(190)。次いで、ソフトウェアは、MのサイズおよびNの量子化を使用して、エントリが[0,255]の整数である行列Nを構築し、NはMのサイズを有し、NはMに近似する(192)。
ブロックによる圧縮またはタイリングは、圧縮時間および復元時間を著しく低減する並行処理を可能にする。
実施形態3
図3Aを参照すると、第3の実施形態では、本開示のソフトウェアは、圧縮を実行することに加えて、デジタルファイルを暗号化する。ファイルを圧縮した後に、ソフトウェアは、ユーザが、復元プロセスで必要なキーコードを選択することを可能にする。暗号化ソフトウェアは、本開示の非可逆圧縮法または可逆圧縮法とともに使用することができる。
暗号化プロセスの一例では、入力ファイルがmn×pq行列Mにより表されると仮定する。
ステップ1.ソフトウェアは、第1の実施形態に記載した可逆圧縮法を使用してファイルを圧縮する。次いで、出力は、基本シーケンスSおよびパターン行列Pである(200)。
ステップ2.ユーザは、キーコードK、1桁〜数百桁のものであり得る数を選択する(202)。
ステップ3.このステップは、キーコードを使用して行列Pを行列Lに変換するためにソフトウェアに実装される任意の1対1アルゴリズムとすることができる(204)。
暗号化ファイルは、シーケンスS、行列L、形状(m,n,p,q)、およびユーザキーコードKを含む(206)。
ステップ3についてのアルゴリズムを実装するために、多数の実施形態を使用できる可能性がある。一例では、ユーザは、h桁の数K=K...Kを選択し、hはPの行の数以下であると仮定する。各e=1,...,hについて、ソフトウェアは、Pの第eの行のエントリを、円形にK個分シフトする。キーコードを使用してPをLに変換にするために、他の既知の方法およびこれ以降に開発される方法を使用することができる。
実施形態3 復元/解読
解読プロセスの場合、入力は、S、L、K、および(m,n,p,q)を含む(210)。
ステップ1.ソフトウェアは、K、Lおよび暗号化プロセスの第3のステップのアルゴリズムの逆を使用して、Pを回復する(212)。
ステップ2.ソフトウェアは、S、P、および(m,n,p,q)を用いた、第1の実施形態に記載した可逆復元法を使用した、Mを回復する(214)。
ユーザは、本開示のソフトウェアを実行する暗号化装置を使用して、サードパーティの関与なしに彼女/彼のファイルをセキュアにすることができる。暗号化プロセスのステップ3についての暗号化アルゴリズムのユーザによる選択は、キーコードの一部とすることができる。分解形状(m,n,p,q)もまた、キーコードの一部とすることができる。全てのこれらのオプションにより、未承認の人々によるセキュアデータのアクセスがより困難になる。
たとえば企業環境内で有用な1つの実施形態では、本開示のソフトウェアは、各被雇用者について暗号化アルゴリズムを生成するように構成することができる。管理者マネージャは、各被雇用者の暗号化アルゴリズムにアクセスできるが、被雇用者は、彼女/彼のファイルをロックおよびアンロックするキーコードを選択することができる。ある被雇用者が退職し、企業が、当該被雇用者がその企業のファイルにアクセスできなくすることを希望する場合、管理者は、その被雇用者についての暗号化アルゴリズムを単に変更しなければならない。いずれの被雇用者も、彼女/彼のキーコードをリセットする必要はない。
暗号化プロセスの第1のステップにおいて使用される可逆圧縮法は、第1または第2の実施形態に記載した任意の非可逆圧縮法と置換することができる。
実施形態4
本開示の一実施形態において、デジタルファイルの可逆圧縮が、BSDを用いて達成される。本明細書の他の箇所に記載するように、非可逆圧縮は、同様の方法を用いて達成することができる。
入力ファイルは、分解形状(m,n,p,q)に関して分解されるmn×pq行列Mにより表されると仮定する。圧縮プロセスおよび復元プロセスの過程において、以下の行列を定義し、計算する。
P:Mのパターン行列、これは、2×R行列である。
E:Mの基本行列、これは、mn×pq行列である。
A:Mの左基本行列、これは、m×Rp行列である。
B:Mの右基本行列、これは、n×Rq行列である。
以下のステップは、MのBSD分解について説明する。以下に、第eのセットについて説明するが、eは、l〜圧縮プロセス中に計算されるMのランクの整数である。ステップのこのセットにおいて、mn×pq行列Mを定義する。圧縮プロセスは、M=Mから開始する。
ステップ1:ソフトウェアは、Mのエントリの絶対値の最大値dを計算する。ステレオ次数に従って、dに等しいMの第1のエントリの位置(r,c)を、パターン行列Pの第eの列に記憶する。
ステップ2:ソフトウェアは、qによるcのユークリッド除法を実行し、余りjを求める。余りがゼロの場合、jはqと置換される。次いで、ソフトウェアは、i=(c−j)/q+1を計算する。
ステップ3:ソフトウェアは、nによるrのユークリッド除法を実行し、余りlを求める。余りがゼロの場合、lはnと置換される。次いで、ソフトウェアは、k=(r−l)/n+1を計算する。
ステップ4:1〜mの各整数a、および1〜pの各整数bについて、位置(l+(a−1)n,j+(b−1)q)におけるMのエントリは、左基本エントリである。このエントリは、左基本行列Aの位置(a,(e−1)p+b)に記憶される。位置(l+(a−1)n,j+(b−1)q)におけるMのエントリは、行列Aの位置(a,b)に記憶される。
ステップ5:1〜nの各整数a、および1〜qの各整数bについて、位置(a+(k−1)n,b+(i−1)q)におけるMのエントリは、右基本エントリである。このエントリは、右基本行列Bの位置(a,(e−1)q+b)に記憶される。位置(a+(k−1)nb+(i−1)q)におけるMのエントリは、行列Bの位置(a,b)に記憶される。
ステップ6:ソフトウェアは、行列
を計算する。(本明細書の他の箇所に詳述したように、本開示は、
の事実を提供する。)
e+1=0である場合、Mの可逆圧縮が達成される。
e+1≠0である場合、Me+1を用いてステップ1〜6を実行する。
非可逆圧縮プロセスは、同じステップ1〜5のセットを含むが、ステップ6の第2のステートメントは、プロセスを止める誤差しきい値と置換される。P、AおよびBは、圧縮ファイルを構成する。
実施形態4 復元
復元プロセスでは、行列P、AおよびBは、入力を構成する。
ステップ1:ソフトウェアは、Pの列の数R、Aの行の数m、Rで除算したAの列の数p、Bの行の数n、およびRで除算したBの列の数qを計算する。
ステップ2:各e=1,...,Rについて、装置は、Pの第eの列から順序対(r,c)を抽出し、以下のサブステップを実行して、Aによる左基本エントリおよびBによる右基本エントリで基本行列Eを埋める。
ステップ2.1:ソフトウェアは、qによるcのユークリッド除法を実行し、余りjを求める。余りがゼロの場合、jはqと置換される。次いで、ソフトウェアは、i=(c−j)/q+1を計算する。
ステップ2.2:ソフトウェアは、nによるrのユークリッド除法を実行し、余りlを求める。余りがゼロの場合、lはnと置換される。次いで、ソフトウェアは、k=(r−l)/n+1を計算する。
ステップ2.3:1〜mnの各整数a、および1〜pqの各整数bについて、位置(a,(e−1)p+b)におけるAのエントリは、Eの位置(l+(a−1)n,j+(b−1)q)に配置され、位置(a,(e−1)q+b)におけるBのエントリは、Eの位置(a+(k−1)n,b+(i−1)q)に配置される。
ステップ3:ソフトウェアは、Mの非基本エントリの位置に対応するEにおける位置に0を埋める。
ステップ4:このステップでは、各e=1,...,Rについて、mn×pq行列Eを定義する。プロセスは、E=Eから開始する。ソフトウェアは、Pの第eの列から順序対(r,c)を抽出し、以下のサブステップを実行する。
ステップ4.1:ソフトウェアは、qによるcのユークリッド除法を実行し、余りjを求める。余りがゼロの場合、jはqと置換され、次いで、ソフトウェアは、i=(c−j)/q+1を計算する。
ステップ4.2:ソフトウェアは、nによるrのユークリッド除法を実行し、余りlを求める。余りがゼロの場合、lはnと置換される。次いで、ソフトウェアは、k=(r−l)/n+1を計算する。
ステップ4.3:1〜mの各整数a、および1〜pの各整数bについて、位置(l+(a−1)n,j+(b−1)q)におけるEのエントリは、行列Aの(a,b)にある位置に置かれる。
ステップ4.4:1〜nの各整数a、および1〜qの各整数bについて、位置(a+(k−1)n,b+(i−1)q)におけるEのエントリは、行列Bの位置(a,b)に配置される。
e<Rである場合、ソフトウェアは、
を計算し、サブステップ 4.1〜4.4を再度行う。
e=Rである場合、ソフトウェアは、ステップ5を実行する。
ステップ5:ソフトウェアは、以下のように、ステップ4で求めた行列を収集する。
行列Nは、出力ファイルの行列である。圧縮が可逆である場合、N=Mである。圧縮が非可逆である場合、NはMに近似する。
復元プロセスで構築される基本行列Eは、圧縮プロセスで構築されることができ、左基本行列Aと右基本行列Bとを置換する。この場合、圧縮ファイルは、EおよびPによって形成される。
Eのエントリは、元の行列Mの基本エントリであり、非基本エントリは、選択される任意の数とすることができる。したがって、Eに対して他の可逆圧縮を使用することにより、自動的に、圧縮ファイルのメモリ値が、同じ可逆圧縮法をMに対して使用する場合の圧縮ファイルのメモリ値よりも少なくなる。
実際には、パターン行列Pは、Mが占めるメモリ空間の1%未満を占めることができる。したがって、BSDを用いた圧縮は、0.99よりも大きな可逆圧縮比を有する。例えば、m=16、n=24、p=8、およびq=16の場合、行列Mのメモリサイズは49,152バイトである。一方、分解形状(16,24,8,16)およびパターン行列Pを記憶するために、260バイト以下、つまり、Mのサイズの0.53%未満が必要である。したがって、圧縮比は、0.994よりも大きい。
多くの場合、パラメータm、n、pおよびqについて、いくつかの選択がある。これらの選択は、何らかのタイプの圧縮されるファイルに適合するためにより適切である。
実施形態5
第2の実施形態は、BSD、低ランク近似およびブロックによる圧縮を使用して、デジタルファイルの効率的な非可逆圧縮を達成する。出力ファイルの品質を測定するために、ピーク信号対雑音比(PSNR)を使用する。
入力ファイルは、エントリが[0,255]の整数である行列Mにより表される画像であり、それについて、圧縮ファイルおよび出力ファイルのエントリもまた[0,255]の整数であることを要すると仮定する。
圧縮プロセスの場合、入力は、M、Er、しきい値誤差を設定する数、ならびにブロック行列を定義するパラメータm、n、pおよびqを含む。Mのサイズは、mn×pq行列のサイズの数倍であると仮定する。圧縮のプロセスにおいて、Mは、mn×pq個のブロック行列へと分割される。
ステップ1:Mの高さがmnで分割不可能、または、Mの幅がpqで分割不可能な場合、被整除性に達するために、ゼロの列または行をMに加える。次いで、加えた部分を、復元プロセスにおいて無視する。
ステップ2:ソフトウェアは、画像をブロックに分割する。各ブロックは、mn×pq行列である。hは、これらのブロックの数であると言える。
ステップ3:各e=1,...,hについて、ソフトウェアは、第eのブロックMに対して以下のステップを実行する。
ステップ3.1:SVDを使用することによって、ソフトウェアは、MによるPSNRがEr以上である全ての行列のうち最低ランクの可能なRを有する行列Dを計算する。
ステップ3.2:ソフトウェアは、行列Dを切り上げ、エントリが整数である行列Qを取得する。(Qのエントリのほとんとが[0,255]内であるが、少数のエントリはその範囲外であり得る)。
ステップ3.3:4.1.2で説明したステップのR個のセットとともにMのBSDを使用すると、ソフトウェアは、Mを復元し、4.1.2の場合のように、Mの左基本行列、右基本行列、およびパターン行列を構築する。
ステップ3.4:ソフトウェアは、行列P、パターン行列の行(2e−1)および2eに、第eのパターン行列の行を記憶し、行列A、左基本行列の行((e−1)m+1)からemに、第eの左基本行列の行を記憶し、行列B、右基本行列の行((e−1)n+1)からenに、第eの右基本行列の行を記憶し、数のシーケンスRにRを記憶する。元のファイルのサイズSとともに行列A、B、PおよびRは、圧縮ファイルを構成する。
実施形態5 復元
復元プロセスについて、入力は、A、B、P、RおよびSを含む圧縮ファイルである。
ステップ1.ソフトウェアは、入力行列から、h、m、n、pおよびqを抽出する。
ステップ2.各e=1,...,hについて、装置は以下のステップを実行して、出力行列の第eのブロックを求める。
ステップ2.1.ソフトウェアは、入力行列から、行列A、BおよびP、ならびに数Rを抽出する。
ステップ2.2.ソフトウェアは、4.1.4で説明した復元プロセスを同様に使用して、ブロックMに近似するブロック行列Nを構築する。
ステップ3.ソフトウェアは、ステップ2で構築したh個のブロックを集合させて行列を形成し、次いで、ソフトウェアは、Sを使用して、Mに近似するN行列を構築する。出力のエントリが[0,255]内の整数であることを希望する場合、Nの量子化が必要なことがある。
ブロックによる圧縮またはタイリングは、圧縮時間および復元時間を著しく低減する並行処理を可能にする。
試験
実施形態5を使用して、発明者は、本開示の圧縮法および暗号化法を試験した。それらの試験結果の一部は、以下の通りである。
評価される試験画像は、RGBフォーマットのカラー画像である。各画像は、3つの行列により表される。BSDを使用する圧縮の前には、行列は、水平配向に隣り合った3つの行列で形成されていた。
出力画像の品質を比較するために、非可逆圧縮の再構築の品質を測定するために一般的に使用されるピーク信号対雑音比(PSNR)を使用する。PSNRの値が大きくなるほど、品質が良くなる。
SVDは一般に、本明細書に記載する欠点にもかかわらず、非常に良好なPSNRを達成することができ、このことは知られている。試験は、BSDが、SVDにより達成されるPSNRに少なくとも極めて近いPSNRにつながる一方で、BSDについての圧縮比が、SVDについての圧縮比に比べて著しく良好であることを示す。
最初の2つの画像「Splash」および「Lenna」は、http://sipi.usc.edu/database/database.phpにリンクする南カリフォルニア大学(University of South California)の試験−画像のセットに含まれる。
2番目の2つの画像「Deer」および「Spider Web」は、http://www.imagecompression.info/に提供される試験画像のセットの一部である。
3番目の2つの画像「kodim01」および「kodim23」は、http://r0k.us/graphics/kodak/のコダック試験画像に含まれる。
各画像は、PNG、JPEG、BSDおよびSVDを使用して圧縮される。PhotoPad Image Editorのトライアルバージョンを使用して、PNG圧縮およびJPEG圧縮をその最高品質100で達成した。BSDの圧縮ファイルは、PNGフォーマットで記憶される。
SVDについての出力ファイルは、実施形態5に記載する圧縮プロセスにおいて行列Qにより表されるファイルである。
JPEGのPSNRとBSDのPSNRとは、ほぼ同じである。SVDの圧縮ファイルとBSDの圧縮ファイルとは、ほぼ同じピクセル数を有するが、SVDのピクセル当たりのメモリ値は、BSDのピクセル当たりのメモリ値よりもはるかに大きい。
SVDのPSNRとBSDのPSNRとの間の差は、0.03dB〜0.57dBである。Splash、DeerおよびSpiderについて、BSDの圧縮比は、JPGの圧縮比の2.6倍〜4倍である。Lenna、kodim01およびkodim23の圧縮比は、BSD対JPGによりわずかに向上している。
本発明の圧縮装置の各々において、画像品質を向上させ、更なる圧縮につながるために、他の画像処理技術を実装することができる。これらの技法は、エントロピー符号化、エリア画像圧縮およびYCbCr変換を含む。
実施形態6
本開示のこの実施形態では、デジタルファイルの可逆圧縮は、本開示のBSD法を使用して達成される。この実施形態で使用されるアルゴリズムは、実施形態1で使用したアルゴリズムとは異なるが、この2つのアルゴリズムは、本明細書に開示するように、シュミット分解を実行することができるBSDに基づく。本明細書の他の箇所に記載するように、非可逆圧縮は、同様の方法を用いて達成することができる。
入力ファイルは、分解形状(m,n,p,q)に関してシュミット分解を使用して分解されるmn×pq行列Mにより表されると仮定する。圧縮プロセスおよび復元プロセスの過程において、以下の行列およびシーケンスを定義し、計算する。
PS:Mのパターンシーケンス。
E:Mの基本行列、これは、mn×pq行列である。
S:鳩の巣原理を使用して構築される基本シーケンスSは、2つの部分SおよびSを有する。
以下のステップのセットは、圧縮プロセスについて説明する。第eのセットについて説明する、ただし、eは、1〜圧縮プロセス中に計算されるMのランクの整数である。ステップのこのセットにおいて、mn×pq行列Mを定義する。圧縮プロセスが、M=Mで開始する。
ステップ1:ソフトウェアは、Mのエントリの絶対値の最大値dを計算する。辞書式順序を従って、絶対値がdに等しい第1のエントリdのMにおける位置を(r,c)とする。位置(r,c)を含むMのn×qブロック行列の位置eを、パターンシーケンスPSの第eの項に記憶する。
ステップ2:Mの第eのn×qブロック行列を、Eの第eのn×qブロック行列に記憶し、辞書式順序に従って、Mの第eのn×qブロック行列のエントリをSに記憶する。
ステップ3:ソフトウェアは、qによるcのユークリッド除法を実行し、余りjを求める。余りがゼロの場合、jはqと置換される。次いで、ソフトウェアは、i=(c−j)/q+1を計算する。
ステップ4:ソフトウェアは、nによるrのユークリッド除法を実行し、余りlを求める。余りがゼロの場合、lはnと置換される。次いで、ソフトウェアは、k=(r−l)/n+1を計算する。
ステップ5:1〜mの各整数a、および1〜pの各整数bについて、位置(l+(a−1)n,j+(b−1)q)におけるMのエントリを行列Aの位置(a,b)に記憶する。辞書式順序に従って、Eの位置(l+(a−1)n,j+(b−1)q)が空白である場合、同じ位置にロケーティングされたMのエントリをそこに記憶し、同じエントリをシーケンスSに記憶する。
ステップ6:1〜nの各整数a、および1〜qの各整数bについて、位置(a+(k−1)n,b+(i−1)q)におけるMのエントリを行列Bの位置(a,b)に記憶する。
ステップ7:ソフトウェアは、行列
を計算する。(本明細書の他の箇所に詳述したように、本開示は、
の事実を提供する。)
e+1=0の場合、Mの可逆圧縮が達成される。
e+1≠0である場合、Me+1を用いてステップ1〜7を実行する。
R個のステップの後、プロセスを停止し、ここで、Rは、Mのシュミットランクである。
非可逆圧縮プロセスは、同じステップ1〜6のセットを含むが、ステップ7の第2のステートメントは、プロセスを停止する誤差しきい値を含むステートメントと置換される。
分解形状(m,n,p,q)、パターンシーケンスPSおよび基本シーケンスSは、圧縮ファイルを構成する(ただし、Sは、第1の部分がSであり、第2の部分がSであるシーケンスである)。基本シーケンスSは、Mから抽出されるR(mp+nq−R)項を有し、PSは、R個の項を有するが、行列Mは、mpnqエントリを有する。
実施形態6 復元
復元プロセスにおいて、クアドロプル(m,n,p,q)、ならびにシーケンスPSおよびSは、入力を構成する。
ステップ1:装置は、PSにおける項の数に等しいRを計算する。
ステップ2:Sの第1のRnq個の項を使用して、mn×pq行列EのRn×qブロック行列(基本行列)を構築する。R個のブロック行列の位置は、PSにより与えられる。次いで、Sの第1のRnq個の項をSから削除する。以下、ステップ2の後に埋められたEの位置を基本位置と称する。
ステップ3:e=1からe=Rまで、装置は、以下のサブステップを実行する。このステップおいて、mn×pq行列Mを定義する。圧縮プロセスが、M=Eで開始する。
ステップ3.1:装置は、エントリがMの第eのn×qブロック行列のエントリである行列Bを構築する。装置は、Bのエントリの絶対値の最大値dを計算する。辞書式順序を従って、装置は、絶対値がdに等しいBにおける第1のエントリdのMeにおける位置(r,c)を計算する。エントリdをシーケンスDの第eの項に記憶する。
ステップ3.2:ソフトウェアは、qによるcのユークリッド除法を実行し、余りjを求める。余りがゼロの場合、jはqと置換される。数jをシーケンスJの第eの項に記憶する。次いで、ソフトウェアは、i=(c−j)/q+1を計算する。数iをシーケンスIの第eの項に記憶する。
ステップ3.3:ソフトウェアは、nによるrのユークリッド除法を実行し、余りlを求める。余りがゼロの場合、lはnと置換される。数lをシーケンスLの第eの項に記憶する。次いで、ソフトウェアは、k=(r−l)/n+1を計算する。数kをシーケンスKの第eの項に記憶する。
ステップ3.4:このサブステップにおいて、m×p行列Aを構築する。各順序付けられた(a,b)(ただし、1≦a≦mおよび1≦b≦p)について、(l+(a−1)n,j+(b−1)q)が基本位置である場合、Aの位置(a,b)に、位置(l+(a−1)n,j+(b−1)q)にロケーティングされたMのエントリを埋める。Aの他の位置には任意の値を埋めることができる。
ステップ3.5:e=Rの場合、装置は、ステップ4を実行する。そうでない場合には、装置は、行列
を計算し、Me+1についてステップ3のサブステップを実行する。
ステップ4:e=1からe=Rまで、装置は、j、Jおよびlの第eの項、Lの第eの項を計算する。辞書式順序を従って、(l+(a−1)n,j+(b−1)q)がEの基本位置でない(ただし、1≦a≦mおよび1≦b≦p)場合、この位置に、Sの第1の項を埋める。次いで、この項をSから削除し、位置(l+(a−1)n,j+(b−1)q)が、Eの新たな基本位置になる。
ステップ5:このステップでは、各e=1,...,Rについて、mn×pq行列Eを定義する。プロセスは、E=Eから開始する。e=1からe=Rまで、装置は、以下のサブステップを実行する。
ステップ5.1:装置は、それぞれIの第eの項、Jの第eの項、Kの第eの項、およびLの第eの項であるi、j、kおよびlを計算する。
ステップ5.2:このサブステップにおいて、m×p行列Aおよびn×q行列Bを構築する。1〜mの各整数a、および1〜pの各整数bについて、位置(l+(a−1)n,j+(b−1)q)におけるEのエントリは、Aの位置(a,b)に配置される。Bのエントリは、Eの第eのn×qブロック行列のエントリである。
e<Rである場合、この方法を実行する本開示の電子処理装置は、
を計算し、ここで、dはDの第eの項であり、Ee+1について、サブステップ5.1および5.2を実行する。
e=Rである場合、装置は、サブステップ5.3を実行する。
ステップ5.3:装置は、以下のように、サブステップ5.2で求めた行列を収集する。
行列Nは、出力ファイルの行列である。圧縮が可逆である場合、N=Mであり、RはMのシュミットランクである。圧縮が非可逆である場合、NはMに近似し、RはMのシュミットランク未満である。
追加の実施例
以下の追加の実施例において、「装置」は、本開示によるソフトウェアを実行するプロセッサを含む装置を指す。
エントリが0〜255の整数である6×6行列Mについて考察する。したがって、Mのメモリ値は36バイトである。
セクション1において、BSDを使用して、Mの可逆圧縮を達成する。BSDを使用して、各項が3×2行列と2×3行列とのクロネッカー積である行列の和へとMを分解する。前述の要旨は、可逆圧縮、非可逆圧縮、および暗号化アルゴリズムについて説明する図表を含む。
rank(M)=2なので、2つのステップで可逆圧縮を達成する。
セクション2において、BSDおよびSVDを使用して、Mの非可逆圧縮を達成する。ランクが1に等しい行列Aを用いてMを近似する。したがって、1つのステップで非可逆圧縮を達成する。
1 BSDを用いた可逆圧縮(第1の実施形態)
1.1 圧縮プロセス
1.入力は、行列Mである。
ステップ1.1 エントリ36は、最も大きな絶対値を有し、(6,6)=(第6の行,第6の列)に位置する。位置(6,6)を、パターン行列Pの第1の行に記憶する。
ステップ1.2 第1の左基本エントリを、Mから選択する。
ステップ1.3 第1の右基本エントリを、Mから選択する。
ステップ1.4 装置は、
を計算する。
ステップ2.1 エントリ
は、最も大きな絶対値を有し、行列Mの(1,1)に位置する。位置(1,1)を、パターン行列Pの第2の行に記憶する。
ステップ2.2 第2の左基本エントリを、Mから選択する。
ステップ2.3 第2の右基本エントリを、Mから選択する。
ステップ2.4 装置は、
を計算し、ゼロ行列を求める。これは、rank(M)=2を意味し、Mの分解を達成する。
2.圧縮ファイルは、パターン行列P、左基本行列LEおよび右基本行列REを含む。
3.行列P、LEおよびREは、28個のエントリを有する。したがって、Mのメモリ値を36バイト〜28バイトに圧縮する。
4.エントリ28、1、36、および9は、左基本エントリと右基本エントリの両方の一部である。次いで、圧縮ファイルのメモリ値を、28バイトから24バイトに低減することができる。
2.1 復元プロセス
1.入力は、行列P、LEおよびREである。
2.Pの行の数は2である。それは、元の行列Mのランクに等しい。それはまた、Mを回復するステップの数に等しい。
3.LEの列の数は4であり、REの列の数は6である。これは、元の行列Mが、各項が3×2行列と2×3行列とのクロネッカー積である行列の和へと分解されたことを意味する。したがって、行列LE、RE、LEおよびREを回復することができる。
ステップ1.1 (6,6)であるPの第1の行を使用して、装置は、行列EにおけるLEおよびREのエントリを、行列Mにおいて占める同じ位置に入れる。
ステップ1.2 (1,1)であるPの第2の行を使用して、装置は、行列EにおけるLE2およびREのエントリを、行列Mにおいて占める同じ位置に入れる。
ステップ1.3
行列Eは基本行列と呼ばれ、Mのサイズを有する。Mの基本エントリではないEのエントリは、0また希望するは任意の数とすることができる。
ステップ1.4 Mの分解における第1の項は、
であり、ただし、A=LEおよびB=RE/36である。
ステップ2.1 装置は、
を計算する。
ステップ2.2 位置(1,1)を使用すると、Mの分解の第2の項は、
であり、ただし、
である。
4.論文「Inverting the tensor product of bounded operators on Hilbert Spaces」の定理2.4を使用すると、以下が証明できる。
このようにして、行列Mが回復される。
2.非可逆圧縮(第2の実施形態)
2.1 圧縮プロセス
1.入力は、行列MおよびTであり、PSNRしきい値が、出力の品質を決定する。この例について、T=44とする。
ステップ1.1 低ランクの近似定理(Eckart Young Mirsky定理)を使用して、装置は、MをT以上のPSNRと近似させる行列のうち最低ランクの行列Nを計算する。低ランク近似を達成するアルゴリズムは、SVDを使用する。
ステップ1.2 行列Nを量子化して、整数エントリをもつ行列Qを取得する。
ステップ1.3 Qとともに可逆圧縮のMで使用する同じステップを使用して、パターン行列P=(6,6)、左基本行列LEおよび右基本行列REを求める。
2.圧縮ファイルは、行列P、LEおよびREで構成される。3つの行列のメモリ値は14である。次いで、圧縮比は、
である。
3.行列Qは、SVDを用いた圧縮の出力である。PSNR(M,Q)=44.4510である。
2.2 復元プロセス
可逆復元のステップと同様のステップである。
1.入力は、行列P、LEおよびREである。
2.Pの行の数は1である。それは、元の行列Nのランクに等しい。それはまた、Mに近似する出力行列を構築するためのステップの数に等しい。
3.LEの列の数は2であり、REの列の数は3である。これは、元の行列Mが、各項が3×2行列と2×3行列とのクロネッカー積である行列の和へと分解されたことを意味する。
4.(6,6)であるPの第1の行を使用して、装置は、行列EにおけるLEおよびREのエントリを、行列Qにおいて占める同じ位置に入れる。
5.行列Eは基本行列と呼ばれ、Mのサイズを有する。Mの基本エントリではないEのエントリは、0また希望するは任意の数とすることができる。
6.量子化の前には、出力は行列である。
7.量子化後、行列が得られる。
8.行列Aは、Mの非可逆圧縮の出力である。PSNR(M,A)=44.4510である。
9.この実施例では、PSNR(M,A)=PSNR (M,Q)であるが、一般には、PSNR(M,A)は、PSNR(M,Q)よりもわずかに小さい。
10.行列Aは1つのステップで構築されたので、ステップ5は必要ない(このステップは、項目4〜7からなる)。一般に、2つ以上のステップが必要とされる場合に、Eが使用される。例えば、Mの可逆圧縮では、行列Mは、2つのステップを使用して回復される。
方法論および証明
ヒルベルト空間上の有界作用素のテンソル積は、数学およびその応用において重要な役目を果たす。応用として、量子力学における複合量子系、制御理論、統計、信号処理、コンピュータ計算、および他の箇所[10、13、14]が挙げられる。有限次元の場合、作用素のテンソル積は、重要な逆問題が関係する、行列のクロネッカー積に相当する。それは、m×n行列Mを最小数の項の和へと分解することであり、その各々は、m×n行列とm×n行列とのクロネッカー積である。これは、いわゆるMのシュミット分解である。この分解における項の数は、
とするMのシュミットランクである。行列のシュミット分解を求める古典的な方法は、SVDを使用することである。この方法をSSVDと呼ぶ。
×n行列Mは、
であるSSVDを有すると仮定する。したがって、Mの分解に関与する全ての行列のエントリの合計数は、r(m+m)に等しい。一方、Mは、m個のエントリを有する。したがって、Mの分解に関与する行列を記憶することは、r(m+m)<m×nの場合にMの可逆圧縮を達成する。s<rである場合、Eckart−Young−Mirsky定理はSSVDを使用して、Mをsシュミットランク行列と近似させたときに起こり得る最低誤差につながるsシュミットランク行列NにMを近似させる[8]。したがって、Nの分解に関与する行列を記憶することは、s(m+m)mの場合にMの非可逆圧縮を達成する。SVDを用いた圧縮として知られる、SVDに基づく別の圧縮方法がある[2、12]。SVDを用いて圧縮するために、Mの特異値および特異ベクトルを記憶することになる。
デジタルデータは、エントリが特定のクラス、すなわち、整数の有限集合内にあるある行列により表される。ただし、特異値および特異ベクトルのエントリは、必ずしも整数のエントリをもつ行列についての整数であるとは限らない。したがって、SSVDまたはSVDを用いた圧縮により、出力についての各エントリが無理数である可能性が高くなる。有意な情報損失なしにデジタルデバイスに無理数を記憶するためには、整数を記憶するのに必要なスペースよりもはるかに大きいメモリ空間を必要とする。したがって、SSVDまたはSVDを用いると、デジタルファイルの可逆圧縮はほとんど不可能であり、非可逆圧縮の圧縮比は、JPEGのような他の既存の圧縮法により達成される圧縮比とは競合できなくなる。
この論文は、分離可能なヒルベルト空間上の有界作用素のテンソル積についての逆公式を提供する結果を[4]において概括する。次いで、これらの公式を使用して、分離可能なヒルベルト空間のテンソル積に対する有界作用素の有限シュミット分解を(ある場合には)求めるための、いくつかのバージョンをもつアルゴリズムを開発する。著者の知識の及ぶ限りでは、これは、無限次元の分離可能なヒルベルト空間のテンソル積に対する有界作用素のシュミット分解を求めるための第1のアルゴリズムである。行列について、SSVDとは異なり、新たなアルゴリズムが実用的であり、スペクトル分解に関係する数値計算は必要ではない。実際には、行列Mの分解における項の一部である行列中の各エントリは、4つの基本的な演算(+、−、×、÷)と組み合わせたMのいくつかのエントリを使用して計算される。これは、この論文の理論の応用のうちの1つとなる。それは、デジタルデータに関する記憶域の問題を解決する、SVDに基づく新たな可逆圧縮法である。これは、この新たな方法が、元のファイルからエントリが抽出される圧縮ファイルを生じるからである。
デジタルデータの圧縮に加えて、この論文の理論は、作用素理論における応用を有する。詳細には、有限シュミット分解を用いて表される作用素の特性は、分解に関与する作用素に反映する。たとえば、
がコンパクト作用素の分解である場合、作用素F1kは、各
についてコンパクトである[5]。
セクション2において、結果を述べるのに必要ないくつかの定義および特性をまとめる。セクション3において、分離可能なヒルベルト空間における有界作用素のテンソル積についての逆公式を構築し、ヒルベルト空間のテンソル積に対する有界作用素についてのシュミット分解定理を述べ、シュミット分解を求めるためのアルゴリズムについて説明する。セクション4において、行列についてのシュミット分解アルゴリズムを提示し、これらのアルゴリズムを用いるとどのように可逆圧縮が可能かについて教示する。
2 まえがきおよび注釈
この論文について、全てのヒルベルト空間は、分離可能であると仮定される。このセクションにおける定義および結論の大部分は、[11]に見出すことができる。
HおよびKを2つのヒルベルト空間であるとする。HからKへの有界作用素のスペースをB(H,K)により示す。HからKへのヒルベルト−シュミット作用素の空間をL(H,K)により示す。Hの双対をH’により示す。
の場合、xにより定義されたH上の一次形式をx’により示し、つまり、
である。
各複素数λについて
に留意されたい。リースの表現定理は、HとH’とが反線形同型:
により同定され、したがって、HとH’とは、線形同型により同定される(ただし、H’’はHの二重双対である)ことを述べる。最後の同定を等式とする。したがって、
である。
各線形マッピング
について、Fの転置
を以下のように定義する。
2つのヒルベルト空間HおよびHについて、ヒルベルト空間
を、ヒルベルト空間L(H’,H)と解釈することができる。この解釈は、以下のように、rank1作用素による
の同定に基づく。
以下、この同定を等式とする。
およびKを2つのヒルベルト空間であるとする。2つの作用素
および
のテンソル積は、以下のように定義することができる。
実施例4.8.(a)実施例4.3に従って、
とする。
パラメータ(3,2,2,3)、パターン行列P=[(1,1),(3,2)]、および基本シーケンスS=(1,4,13,16,25,28,2,3,7,8,9,5,14,17,26,29,15,19,20,21)が、Mを回復するために必要である。
最初に、6×6基本行列Eを構築する。
ステップ1 Pの第1行は(1,1)である。
1.Eにおいて最初に埋めるべき位置は、(1,1)、(1,4)、(3,1)、(3,4)、(5,1)、(5,4)であり、そこにエントリ1、4、13、16、25、28を記憶する。
2.Eにおいて2番目に埋めるべき位置は、(1,2)、(1,3)、(2,1)、(2,2)、(2,2)であり、そこにエントリ2、3、7、8、9を記憶する。鳩の巣原理は、すでに埋められた位置(1,1)を排除することに留意されたい。
ステップ2 Pの第2行は(3,2)である。
Eにおいて3番目に埋めるべき位置は、(1,5)、(3,2)(3,5)、(5,2)、(5,5)であり、そこにエントリ5、14、17、26、29を記憶する。鳩の巣原理は、すでに埋められた位置(1,3)を排除することに留意されたい。
Eにおいて4番目に埋めるべき位置は、(3,3)、(4,1)、(4,2)、(4,3)であり、そこにエントリ15、19、20、21を記憶する。鳩の巣原理は、すでに埋められた位置(3,1)および(3,2)を排除することに留意されたい。
このようにして、
が得られ、空白のエントリに任意値を埋め、Pに従ってEを分解して、Mが得られる。
したがって、Mの圧縮は、値が1〜36の整数である28個のエントリのものである。
(b)SVDを使用して、シュミット分解
を求め、ただし、
である。
Mの圧縮は、整数でなく、おそらく無理数である24個の実数を含むと結論づける。
(c)MのSVDは、127,2064および4.9526にほぼ等しい特異値、ならびに以下の行列の列に近似する特異ベクトルをもたらす。
Mの圧縮は、整数でなく、おそらく無理数である26個の実数を含むと結論づける。
(d)以下の表に、各圧縮についての結果をまとめる。誤差は、MとMATLABを使用して計算した復元の出力との差のフロベニウスノルムである。
0〜255の整数をコンピュータに記憶するには、1バイトが必要である。したがって、Mを記憶するためには36バイトが必要であるが、BSDによる圧縮ファイルは28バイトを必要とし、したがって、可逆圧縮は達成される。
MATLABにより、SSVDおよびSVDについて非ゼロ誤差を生じる。これは、SSVDまたはSVDによる圧縮ファイルの各エントリを記憶するために4バイトを使用することは、Mを正確に回復するには十分ではないことを意味する。したがって、Mを回復するためには、SSVDの場合には96バイト超、SVDの場合には104バイト超が必要となる。したがって、可逆圧縮は、達成されない。
[6]において、著者は、SSVDとハイブリッドしたBSDに基づく非可逆圧縮法を紹介する。画像に適用すると、新たな方法による圧縮比は、SVDまたはSSVDによる圧縮比よりもはるかに高いが、復元出力の品質は同じである。画像が標準試験画像によるいくつかの場合には、新たな方法による圧縮比は、JPEGによる圧縮比の2倍であることも分かった。著者は、BSDによる可逆圧縮と、SSVDとハイブリッドしたBSDに基づく方法による非可逆圧縮の両方を保護する特許出願[7]を提出した。
ここに記載したアルゴリズムを実行するために使用することができるコンピュータシステムの一例を、以下に、図4に関して示し説明する。アルゴリズムの任意の部分または全てを1つのコンピュータ上で実行することができるか、あるいは、圧縮されるデジタルファイルまたはデジタルデータストリームを、インターネット上のサーバを含むLANまたはWAN上のリモートサーバーにアップロードすることができる。本明細書のアルゴリズムまたは実施形態の一部分は、同じ場所の異なるコンピュータによって、または、異なる場所のコンピュータによって実行することができる。いずれの場合も、アルゴリズムのステップは、並行処理によって実行することができるか、あるいは、複数のコンピュータが各々、所与のアルゴリズムまたは実施形態のサブルーチンを実行することができる。
前述の方法のいずれかを使用して、サーバは、画像ファイル、オーディオファイル、ビデオファイル、データファイル、またはストリーミングデータを含む任意の他のデータソースであり得るデジタルファイルまたはストリームが提供されると、本開示のアルゴリズムを実行することができる。デジタルデータは、圧縮されると、後での取出しまたは転送のためにリモートな場所に記憶することができるか、あるいはデジタルファイルまたはストリームが元々取得されたアドレスに戻すことができる。
さらに、圧縮ファイルは、出力デバイス、たとえば、ディスプレイ、プリンタ(3Dプリンタを含む)、オーディオおよび/またはビデオ出力デバイス、あるいは、既知のまたは今後開発される任意の他の出力デバイスに送信することができる。データファイルまたはストリームは、本開示に従って圧縮および/または暗号化され、元々のソースに戻されると、ソースにより効率的に記憶する、あるいは、複数の受信者に再配信することができ、得られたデジタルファイルまたはストリームが記憶および送信のために必要とするバイトが実質的少なくなるので、コストおよび速度の大幅な節減を実現することができる。
例示的なコンピュータシステム
図4は、そこにまたはそれを用いて本開示を実装することができる、汎用コンピュータ、または一連の相互接続したコンピュータ、または複数のプロセッサを含むコンピュータのような、コンピュータシステム700のためのシステムアーキテクチャーを示す。図4の例示的なコンピュータシステムは、説明のみを目的とする。説明は、特定のコンピュータシステムについて説明する際に使用される一般的な用語について言及し得るが、説明および概念は、図4とは異なるアーキテクチャを有するシステムを含む他のシステムに等しく当てはまる。コンピュータシステム700は、非一時的媒体に記憶されたソフトウェアを実行し、そのソフトウェアは、他のコンピューティング装置から、または、ヒューマンインターフェイスデバイスから入力を受信するように構成される。
コンピュータシステム700は、従来のマイクロプロセッサとともに実装され得る少なくとも1つの中央処理ユニット(CPU)705またはサーバ、情報の一時記憶のためのランダムアクセスメモリ(RAM)710、および情報のパーマネント記憶のための読取り専用メモリ(ROM)715を含む。RAM710を制御することを目的として、メモリコントローラ720が提供される。
バス730は、コンピュータシステム700の構成要素を相互接続する。バス730を制御することを目的として、バスコントローラ725が提供される。システム構成要素から様々な割込み信号を受信し、処理するために、割込みコントローラ735が使用される。
たとえば、DVD ROM747またはフラッシュまたは回転型ハードディスクドライブ752により、大容量記憶域が提供され得る。本開示のソフトウェア400を含むデータおよびソフトウェアは、ディスケット、CD−ROM、DVD、Blu−Ray(登録商標)、または光学媒体ドライブ746およびコントローラ745に接続可能な他の光学媒体747のような、取り外し可能な媒体を介して、コンピュータシステム700と交換され得る。代替的には、たとえばメディアスティック、たとえばソリッドステートUSBドライブを含む他の媒体は、外部デバイスインターフェース741およびコントローラ740に接続され得る。さらに、別のコンピューティング装置は、外部デバイスインターフェース741を介して、たとえば、USBコネクタ、BLUETOOTH(登録商標)コネクタ、赤外線またはWiFiコネクタによって、コンピュータシステム700に接続され得るが、他の接続モードが知られ得る、あるいは今後開発され得る。ハードディスク752は、コントローラ750によりバス730に接続される固定ディスクドライブ751の一部である。本開示とともに有利に使用され得る、他の記憶装置、周辺機器およびコンピュータ処理手段が、将来開発され得ることを理解されたい。
コンピュータシステム700へのユーザ入力は、複数のデバイスにより提供され得る。たとえば、コントローラ755により、キーボード756およびマウス757がバス730に接続される。図示のように、オーディオコントローラ797により、マイクロフォンおよびスピーカーとして働き得るオーディオトランスデューサ796がバス730に接続される。当業者には、必要に応じて、ペンおよび/またはタブレット、携帯情報端末(PDA)、モバイル/セルラーフォン、および他のデバイスのような他の入力デバイスが、バス730および適当なコントローラおよびソフトウェアに接続され得ることが明白となるであろう。RAM710へのダイレクトメモリアクセスを実行することを目的として、DMAコントローラ760が提供される。ビデオディスプレイ770を制御するビデオコントローラ765により、視覚的表示が生成される。コンピュータシステム700はまた、バス791およびネットワーク795によって概略的に示される、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)にシステムを相互接続することを可能にする通信アダプタ790を含む。
コンピュータシステム700の動作は、一般に、マイクロソフト(登録商標)(Microsoft Corp.、米国ワシントン州レドモンド)から市販されているWindows(登録商標)システムのようなシステムソフトウェアを動作させることによって、制御および調整される。オペレーティングシステムは、システムリソースのアロケーションを制御し、とりわけスケジューリング、メモリ管理、ネットワーキングおよびI/Oサービスの処理のようなタスクを実行する。詳細には、オペレーティングシステムは、システムメモリに常駐し、CPU705上で実行して、コンピュータシステム700の他の要素の動作を調整する。本開示は、任意の数の市販されているオペレーティングシステムを用いて実装され得る。
HTMLページサーバ、または市販の通信アプリケーションのような、1つまたは複数のアプリケーションは、ユーザに情報を搬送するために動作可能なオペレーティングシステムの制御下で実行し得る。
本明細書で引用する全ての文献は、明示的に全文が参照により組み込まれる。当業者には、本開示は、本明細書で上記に詳細に示し、説明したものに限定されるものではないことが了解されよう。さらに、特段の記載がない限り、添付図面の全てが一定の縮尺でないことを留意されたい。本開示には多くの異なるフィーチャがあり、これらのフィーチャは、一緒にまたは別々に使用され得ることが企図される。したがって、本開示は、フィーチャの任意の特定の組合せ、または、本開示の特定の適用例に限定すべきではない。さらに、本開示が関係する当業者には、本開示の趣旨および範囲の変形形態および修正形態が起こり得ることを理解されたい。したがって、本開示のさらなる実施形態として、本開示の範囲および趣旨に含まれる、本明細書に記載された当技術分野に精通した者には容易に到達可能な全ての好都合な変更形態が含まれることになる。
引例:
[1]Abdelkrim Bourouihiya著,「The tensor Product of Frames」,Sampling theory in signal and Image processing,Vol.7,No.1 (2008),pp.65〜76.
[1A] H.Cheng,Z.Gimbutas,P.−G.Martinsson,V.Rokhlin著,「On the compression of low rank matrices」,SIAM J.Sci.Comput.,26 (2005),pp.1389〜1404.
[2] G.Eckart,G.Young著,「The appro×imation of one matri× by another of lower rank」,Psychometrika,1,1936,pp.211〜218.
[3]Horn,Roger A.;Johnson,Charles R.著,「Topics in Matri× Analysis」,1991,Cambridge University Press.
[4]Satish K.SinghおよびShishir Kumar著、「Mathematical transforms and image compression」:A review.Maejo Int.J.Sci.Technol.2010,4(02),235〜249.
[5]S.O.Aase,J.H.HusoyおよびP.Waldemar著,「A critique of SVD−based image coding systems」、IEEE International Symposium on Circuits and Systems on VLSI 1999,Vol.4,米国フロリダ州オーランド,pp.13−16.
[6]B.ArnoldおよびA.McInnes著、「An investigation into using singular value decomposition as a method of image compression」、College of Redwood, University of Canterbury(ニュージーランド)、Technical Report (2000).
[7]H.C.AndrewsおよびC.L.Paterson著,「Singular value decomposition (SVD) image coding」、IEEE Trans.Comm 1976,24,425〜432.
[7a]G.H.GolubおよびC.Reinsels著,「Singular value decomposition and least square solutions」,Numer.Math.,1970,14,403〜420.1976,24,425〜432.
[8]V.Singh著,「Recent Patents on Image Compression − A Survey」http://www.benthamscience.com/open/rptsp/articles/V002/47RPTSP.pdf
[9]Julie KammおよびJames G.Nagy著,「kronecker product and SVD appro×imations in image restoration」,Linear Algebra and its Applications 284,(1998),177〜192
[10]Jain,Anil K.著(1989),「Fundamentals of Digital Image Processing」,Prentice Hall.
[11] Kadison,Richard V.;Ringrose,John R.著(1997),「Fundamentals of the theory of operator algebras」、Vol.I,Graduate Studies in Mathematics 15,Providence,R.I: American Mathematical Society.
[12]Steeb,Willi−Hans著,「Matri× Calculus and Kronecker Product with Applications and C++ Programs」,1997,World Scientific Publishing.
[12a]Steeb, Willi−Hans著,「Matri× Calculus and Kronecker Product with Applications」,2011,World Scientific Publishing.

Claims (20)

  1. デジタルデータソースを符号化するための方法であって、
    非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、前記ソフトウェアが、
    整数の定義済みセット内のエントリを用いて、前記デジタルデータ内のmn×pq行列Mを同定し、
    左基本行列Aを定義し、
    右基本行列Bを定義し、
    基本エントリの位置を記憶するためのパターン行列Pを定義し、
    行列MにMの出発値を割り当て、
    行列Aを定義し、
    行列Bを定義し、
    eに出発値を割り当て、
    a)Mの非ゼロエントリdを選択し、
    b)Pの第eの列に、前記選択したMの非ゼロエントリの位置(r,c)を記憶し、
    c)Mから、共通のエントリとしてdを有し、
    が前記形状(m,n,p,q)に関するMのBSDにおける項である、2つの行列AおよびBを選択し、
    d)Aの第eのm×pブロックに、位置がMにおけるAのエントリの位置であるMのエントリを記憶し、
    e)Bの第eのn×qブロックに、位置がMにおけるBのエントリの位置であるMのエントリを記憶し、
    f)前記行列
    を算出し、M〜Me+1の所定の誤差しきい値に達した場合には、Me+1を用いてステップ(a)〜(f)を反復し、そうでない場合には、P、AおよびBは集合的に、Mに対応する符号化されたデジタルデータを表し、
    g)ソフトウェアまたは別のコンピュータを実行するコンピュータのうちの少なくとも1つ上のデジタル記憶域に、前記符号化されたデータを転送し、前記符号化されたデータが、前記ソースデジタルデータよりも少ないデータバイトを備え、前記ソースデジタルデータの全ての前記情報および前記ソースデジタルデータの前記情報の全ての近似のうちの少なくとも1つを表す
    ように構成される、
    デジタルデータソースを符号化するための方法。
  2. ステップ(a)で選択した前記非ゼロ数は、ステレオ次数に関して、絶対値が前記Mのエントリの絶対値の最大値である第1のエントリに対応する、請求項1に記載の方法。
  3. 前記ソフトウェアが、ステップ(c)において、
    i)qによるcのユークリッド除法を算出して余りjを求め、余りjがゼロである場合、jをqと置換し、次いで、i=(c−j)/q+1を計算すること、および
    ii)nによるrのユークリッド除法を算出して余りlを求め、前記余りlがゼロである場合、lをnと置換し、次いで、k=(r−l)/n+1を計算すること
    によって、Mから、2つの行列AおよびBを選択するようにさらに構成される、
    請求項1に記載の方法。
  4. 前記ソフトウェアが、
    (i)1〜mの各整数aおよび1〜pの各整数bについて、位置(l+(a−1)n,j+(b−1)q)におけるMのエントリを、位置(a,(e−1)p+b)における左基本行列Aに記憶し、位置(l+(a−1)n,j+(b−1)q)におけるMeのエントリを、位置(a,b)における行列Aeに記憶することによって、ステップ(d)を実行し、
    (ii)1〜nの各整数aおよび1〜qの各整数bについて、位置(l+(k−1)n,b+(i−1)q)におけるMのエントリを、位置(a,(e−1)q+b)における右基本行列Bに記憶し、位置(l+(k−1)n,b+(i−1)q)におけるMのエントリを、位置(a,b)における行列Bに記憶することによって、ステップ(e)を実行する
    ようにさらに構成される、請求項1に記載の方法。
  5. 所定の停止値は、前記デジタルデータの可逆符号化について無限大である、請求項1に記載の方法。
  6. 所定の停止値は、前記デジタルデータの非可逆符号化について正数である、請求項1に記載の方法。
  7. P、AおよびBの記憶サイズの和は、Mに対応する前記デジタルデータの記憶サイズよりも小さい、請求項1に記載の方法。
  8. AおよびBのエントリの全てがMから抽出され、Pのエントリが整数である、請求項1に記載の方法。
  9. 前記ソフトウェアが、P、AおよびBを使用して前記デジタルデータを行列Nとして復号するようにさらに構成され、したがって、前記ソフトウェアが、
    Rを、Pの列の数として定義し、
    Eを、mn×pq行列として定義し、
    mを、Aの行の数として定義し、
    pを、Rで除算されたAの列の数として定義し、
    nを、Bの行の数として定義し、
    qを、Rで除算されたBの列の数として定義し、
    eに出発値を割り当て、
    Pの第eの列から、順序対(r,c)を抽出し、
    ステップ(c)〜(f)を逆に、ステップ(f)〜(c)として実行し、EのAおよびBのエントリを、Mで占める同じ位置に配置し、
    AまたはBからのエントリを割り当てられなかったEの全ての値にゼロを埋め、
    行列EにEの出発値を割り当て、
    eに出発値を割り当て、
    a)Pの第eの列から、順序対(r,c)を抽出し、
    b)前記位置(r,c)におけるEのエントリdを選択し、
    c)請求項1のステップ(c)〜(f)の方法を使用して、請求項1の行列AおよびBを回復し、
    d)e<Rである場合、
    を計算し、Ee+1を用いて(a)〜(d)を反復し、e=Rである場合、
    を計算する
    ようにさらに構成される、請求項1に記載の方法。
  10. ステップ(d)において、N=Mである場合、前記デジタルデータが、データの損失なしに復号されており、N≠Mである場合、Nが前記デジタルデータに近似する、請求項9に記載の方法。
  11. Mに対応する前記デジタルデータが、Pを暗号化することによって暗号化される、請求項1に記載の方法。
  12. Mが、前記デジタルデータ内で同定される複数の行列Mのうちの1つであり、前記複数の行列Mの各々について、ステップ(a)〜(f)が実行され、前記デジタルデータが、前記デジタルデータ全体を表す前記行列MのサイズSとともに、前記複数の行列Mに対応するP、AおよびBの前記集合的な行列によって符号化される、請求項1に記載の方法。
  13. デジタルデータソースを符号化するための方法であって、
    非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、前記ソフトウェアが、
    Rを、Pの列の数として定義し、
    Eを、mn×pq行列として定義し、
    mを、Aの行の数として定義し、
    pを、Rで除算されたAの列の数として定義し、
    nを、Bの行の数として定義し、
    qを、Rで除算されたBの列の数として定義し、
    eに出発値を割り当て、
    Pの第eの列から、順序対(r,c)を抽出し、
    前記位置(r,c)におけるEのエントリdを選択し、
    qによるcのユークリッド除法を算出して余りjを求め、前記余りjがゼロである場合、jをqと置換し、次いで、i=(c−j)/q+1を計算し、
    nによるrのユークリッド除法を算出して余りlを求め、前記余りlがゼロである場合、lをnと置換し、次いで、k=(r−l)/n+1を計算し、
    1〜mnの各整数aおよび1〜pqの各整数bについて、位置(a,(e−1)p+b)におけるAのエントリを、Eの位置(l+(a−1)n,j+(b−1)q)にコピーし、位置(a,(e−1)q+b)におけるBのエントリを、Eの位置(a+(k−1)n,b+(i−1)q)にコピーし、
    AまたはBからのエントリを割り当てられなかったEの全ての値にゼロを埋め、
    行列EにEの出発値を割り当て、
    eに出発値を割り当て、
    a)Pの第eの列から、順序対(r,c)を抽出し、
    b)前記位置(r,c)におけるEのエントリdを選択し、
    c)qによるcのユークリッド除法を算出して余りjを求め、前記余りjがゼロである場合、jをqと置換し、次いで、i=(c−j)/q+1を計算し、
    d)nによるrのユークリッド除法を算出して余りlを求め、前記余りlがゼロである場合、lをnと置換し、次いで、k=(r−l)/n+1を計算し、
    e)1〜mの各整数a、および1〜pの各整数bについて、位置(l+(a−1)n,j+(b−1)q)におけるEのエントリを行列Aの位置(a,b)に記憶し、
    f)1〜nの各整数a、および1〜qの各整数bについて、位置(l+(k−1)n,b+(i−1)q)におけるEのエントリを行列Bの位置(a,b)に記憶し、
    g)e<Rである場合、
    を計算し、Ee+1を用いて(a)〜(g)を反復し、e=Rである場合、前記符号化されたデータが、
    として計算され、
    h)ソフトウェアまたは別のコンピュータを実行するコンピュータのうちの少なくとも1つ上のデジタル記憶域に、前記符号化されたデータを転送し、前記符号化されたデータが、前記ソースデジタルデータよりも少ないデータバイトを備え、前記ソースデジタルデータの全ての前記情報および前記ソースデジタルデータの前記情報の全ての近似のうちの少なくとも1つを表す
    ように構成される、
    デジタルデータソースを符号化するための方法。
  14. 前記ソフトウェアが、P、AおよびBを使用して前記デジタルデータを、Mに近似する行列として復号するようにさらに構成される、請求項13に記載の方法。
  15. Mが、前記デジタルデータ内で同定される複数の行列Mのうちの1つであり、前記複数の行列Mの各々について、ステップ(a)〜(f)が実行され、前記デジタルデータが、前記デジタルデータ全体を表す前記行列MのサイズSとともに、前記複数の行列Mに対応するP、AおよびBの前記集合的な行列によって符号化される、請求項13に記載の方法。
  16. 各行列Mが、所定のサイズを有し、前記デジタルデータが前記所定のサイズにより均等に分割可能でない場合、残りの部分行列Mが、ゼロを用いて前記所定のサイズにパディングされ、前記デジタルデータを復号するときに破棄される、請求項15に記載の方法。
  17. デジタルデータを符号化するための方法であって、
    非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、前記ソフトウェアが、
    整数の定義済みセット内のエントリを用いて、前記デジタルデータ内のmn×pq行列Mを同定し、
    2つの部分SおよびSにおける基本シーケンスSを定義し、
    基本行列Eを定義し、
    Eのn×qブロック行列の位置を記憶するためパターンシーケンスPSを定義し、
    行列Aを定義し、
    行列Bを定義し、
    行列MにMの出発値を割り当て、eに出発値を割り当て、
    a)Mの非ゼロエントリdを選択し、
    b)PSの第eの項に、deの位置(r,c)を含むMeの第eのn×qブロックのおける位置を記憶し、
    c)Mの第eのn×qブロック行列を、Eの第eのn×qブロック行列に記憶し、辞書式順序に従って、Mの第eのn×qブロック行列のエントリをSに記憶し、
    d)qによるcのユークリッド除法を算出して余りjを求め、前記余りがゼロである場合、jをqと置換し、次いで、i=(c−j)/q+1を計算し、および、nによるrのユークリッド除法を算出して余りlを求め、前記余りがゼロである場合、lをnと置換し、次いで、k=(r−l)/n+1を計算し、
    e)1〜mの各整数a、および1〜pの各整数bについて、行列Aの位置(a,b)に、位置(l+(a−1)n,j+(b−1)q)におけるMのエントリを記憶し、辞書式順序に従って、Eの位置(l+(a−1)n,j+(b−1)q)が空白である場合、そこに、同じ位置に配置されたMのエントリを記憶し、シーケンスSに、同じエントリを記憶し、
    f)前記行列
    を算出し、M〜Me+1の所定の誤差しきい値に達した場合には、Me+1を用いてステップ(a)〜(f)を反復し、そうでない場合には、SおよびSを集合させて、PSおよび前記形状(m,n,p,q)を用いてMに対応する符号化されたデジタルデータを表すシーケンスSを形成し、
    g)ソフトウェアまたは別のコンピュータを実行するコンピュータのうちの少なくとも1つ上のデジタル記憶域に、前記符号化されたデータを転送し、前記符号化されたデータが、前記ソースデジタルデータよりも少ないデータバイトを備え、前記ソースデジタルデータの全ての前記情報および前記ソースデジタルデータの前記情報の全ての近似のうちの少なくとも1つを表す
    ように構成される、
    デジタルデータを符号化するための方法。
  18. 前記ソフトウェアが、
    Rを、PSにおける項の数数として定義し、
    Eを、mn×pq行列として定義し、
    Sの第1のRnq個の項を使用して、EのRn×qブロック行列を構築し、PSを使用して前記R個のブロック行列の位置を同定し、Sから前記使用した項を削除し、次いで、基本位置を、Eの任意の埋められた位置と呼び、
    行列MにEの出発値を割り当て、eに出発値を割り当て、
    a)エントリがMの第eのn×qブロック行列のエントリである行列Bを構築し、辞書式順序に従って、絶対値がBのエントリの絶対値の最大値に等しいBにおける第1のエントリdのMにおける位置(r,c)を計算し、次いで、シーケンスDの第eの項にdを記憶し、
    b)qによるcのユークリッド除法を算出して余りjを求め、前記余りがゼロである場合、jをqと置換し、次いで、i=(c−j)/q+1を計算し、および、nによるrのユークリッド除法を算出して余りlを求め、前記余りがゼロである場合、lをnと置換し、次いで、k=(r−l)/n+1を計算し、シーケンスIの第eの項i、シーケンスJの第eの項j、シーケンスKの第eの項k、およびシーケンスLの第eの項lを記憶し、
    c)各(a,b)について(ただし、1≦a≦mかつ1≦b≦p)、以下のようにm×p行列Aを構築し、(l+(a−1)n,j+(b−1)q)が、基本位置である場合、Aの位置(a,b)に位置(l+(a−1)n,j+(b−1)q)に配置されたMのエントリを埋め、このEの位置にSの第1の項を埋め、(l+(a−1)n,j+(b−1)q)をEの基本位置としてマークし、
    d)Aの他の位置にゼロを埋め、
    f)
    を計算し、e<Rである場合、Me+1を用いてステップ(a)〜(d)を反復し、e=Rである場合、行列EにEの出発値を割り当て、eに出発値を割り当て、
    g)それぞれIの第eの項、Jの第eの項、Kの第eの項、およびLの第eの項であるi、j、kおよびlを計算し、
    h)1〜mの各整数a、および1〜pの各整数bについて、位置(l+(a−1)n,jにおけるEのエントリを、Aの位置(a,b)に配置し、Eの第eのn×qブロック行列をBに割り当てるように、m×p行列Aを構築し、n×q行列Bが構築され、
    k)e<Rである場合、
    を計算し(ただし、dはDの第eの項である)、Ee+1を用いてステップ(g)および(h)を反復し、e=Rである場合、
    を計算し、ただし、行列Nは、出力ファイルの行列である
    ようにさらに構成されることによって、符号化されたデジタルデータを復号するように構成される、請求項17に記載の方法。
  19. Mのシュミットランクに達した後、ステップ(f)のステップ(a)〜(d)の反復計算を停止することによって、可逆圧縮が達成される、請求項17に記載の方法。
  20. PSNR、PEVQおよびSSIMのうちの少なくとも1つを使用することによって、誤差を測定する、請求項17に記載の方法。
JP2017529977A 2014-08-22 2015-08-21 クロネッカー積を使用するデータアダプティブ圧縮およびデータ暗号化 Active JP6571193B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462040674P 2014-08-22 2014-08-22
US62/040,674 2014-08-22
PCT/US2015/046382 WO2016029163A1 (en) 2014-08-22 2015-08-21 Data adaptive compression and data encryption using kronecker products

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019144731A Division JP6815662B2 (ja) 2014-08-22 2019-08-06 クロネッカー積を使用するデータアダプティブ圧縮およびデータ暗号化

Publications (2)

Publication Number Publication Date
JP2017532919A JP2017532919A (ja) 2017-11-02
JP6571193B2 true JP6571193B2 (ja) 2019-09-04

Family

ID=55351312

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017529977A Active JP6571193B2 (ja) 2014-08-22 2015-08-21 クロネッカー積を使用するデータアダプティブ圧縮およびデータ暗号化
JP2019144731A Active JP6815662B2 (ja) 2014-08-22 2019-08-06 クロネッカー積を使用するデータアダプティブ圧縮およびデータ暗号化

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019144731A Active JP6815662B2 (ja) 2014-08-22 2019-08-06 クロネッカー積を使用するデータアダプティブ圧縮およびデータ暗号化

Country Status (6)

Country Link
US (2) US10070158B2 (ja)
EP (1) EP3195604B1 (ja)
JP (2) JP6571193B2 (ja)
KR (1) KR102182339B1 (ja)
CA (1) CA2959023C (ja)
WO (1) WO2016029163A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102182339B1 (ko) 2014-08-22 2020-11-24 노바 사우쓰이스턴 유니버시티 크로네커 곱을 이용한 데이터 적응적 압축 및 데이터 암호화
WO2017092022A1 (zh) * 2015-12-04 2017-06-08 深圳先进技术研究院 一种张量模式下的有监督学习优化方法及系统
US11051039B2 (en) 2017-06-02 2021-06-29 Ostendo Technologies, Inc. Methods for full parallax light field compression
US10931956B2 (en) 2018-04-12 2021-02-23 Ostendo Technologies, Inc. Methods for MR-DIBR disparity map merging and disparity threshold determination
US11172222B2 (en) 2018-06-26 2021-11-09 Ostendo Technologies, Inc. Random access in encoded full parallax light field images
US10936703B2 (en) * 2018-08-02 2021-03-02 International Business Machines Corporation Obfuscating programs using matrix tensor products
CN109120813B (zh) * 2018-08-14 2020-05-26 长春理工大学 基于克罗内克积的量子混沌光学图像加密解密方法
US10771088B1 (en) 2019-02-28 2020-09-08 International Business Machines Corporation Optimal multi-dimensional data compression by tensor-tensor decompositions tensor
CN110086953A (zh) * 2019-03-12 2019-08-02 天津大学 基于QR分解和Gyrator变换的彩色图像加密方法
KR20200132178A (ko) * 2019-05-16 2020-11-25 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN115474048A (zh) * 2022-09-14 2022-12-13 中车青岛四方车辆研究所有限公司 基于分裂四元数模型的快速彩色图像压缩方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003055119A2 (en) 2001-12-06 2003-07-03 New York University Logic arrangement, data structure, system and method for multilinear representation of multimodal data ensembles for synthesis, recognition and compression
US7359550B2 (en) * 2002-04-18 2008-04-15 Mitsubishi Electric Research Laboratories, Inc. Incremental singular value decomposition of incomplete data
US7400774B2 (en) * 2002-09-06 2008-07-15 The Regents Of The University Of California Encoding and decoding of digital data using cues derivable at a decoder
KR100584552B1 (ko) * 2003-01-14 2006-05-30 삼성전자주식회사 동영상 부호화 및 복호화 방법과 그 장치
EP1815635B9 (en) * 2004-11-11 2014-01-15 Certicom Corp. Custom static diffie-hellman groups
KR20090078790A (ko) 2006-09-26 2009-07-20 샌드브리지 테크놀로지스, 인코포레이티드 무선 통신 시스템에서 매트릭스 변환 소프트웨어 구현을 위한 장치 및 방법
EP1983759A1 (en) * 2007-04-19 2008-10-22 Matsushita Electric Industrial Co., Ltd. Estimation of separable adaptive interpolation filters for hybrid video coding
EP2048886A1 (en) * 2007-10-11 2009-04-15 Panasonic Corporation Coding of adaptive interpolation filter coefficients
WO2009126261A2 (en) * 2008-04-11 2009-10-15 Thomson Licensing System and method for enhancing the visibility of an object in a digital picture
US8688616B2 (en) 2010-06-14 2014-04-01 Blue Prism Technologies Pte. Ltd. High-dimensional data analysis
US9398310B2 (en) * 2011-07-14 2016-07-19 Alcatel Lucent Method and apparatus for super-resolution video coding using compressive sampling measurements
KR20160104646A (ko) * 2013-12-22 2016-09-05 엘지전자 주식회사 양자화 에러의 추가적인 제어를 이용한 비디오 신호의 인코딩, 디코딩 방법 및 장치
US9681147B2 (en) * 2014-01-20 2017-06-13 Board Of Trustees Of Michigan State University Compression of image ensembles using tensor decomposition
KR102182339B1 (ko) 2014-08-22 2020-11-24 노바 사우쓰이스턴 유니버시티 크로네커 곱을 이용한 데이터 적응적 압축 및 데이터 암호화

Also Published As

Publication number Publication date
JP2019204542A (ja) 2019-11-28
EP3195604A4 (en) 2018-05-02
JP2017532919A (ja) 2017-11-02
US10070158B2 (en) 2018-09-04
KR20170048398A (ko) 2017-05-08
KR102182339B1 (ko) 2020-11-24
WO2016029163A1 (en) 2016-02-25
CA2959023A1 (en) 2016-02-25
CA2959023C (en) 2023-01-10
US20170257649A1 (en) 2017-09-07
US20190020906A1 (en) 2019-01-17
US10397622B2 (en) 2019-08-27
EP3195604A1 (en) 2017-07-26
EP3195604B1 (en) 2023-07-26
JP6815662B2 (ja) 2021-01-20

Similar Documents

Publication Publication Date Title
JP6571193B2 (ja) クロネッカー積を使用するデータアダプティブ圧縮およびデータ暗号化
Chai et al. An efficient approach for encrypting double color images into a visually meaningful cipher image using 2D compressive sensing
Chai et al. An efficient visually meaningful image compression and encryption scheme based on compressive sensing and dynamic LSB embedding
Hussain et al. Image compression techniques: A survey in lossless and lossy algorithms
CN112437930A (zh) 以熟练的推理速度和功耗,生成神经网络的压缩表示
CN110139000B (zh) 基于压缩感知和生命游戏置乱的图像压缩加密方法
KR101819700B1 (ko) 암호 통신용 화상 압축 신장 방법 및 장치, 프로그램과 기억 매체
JP2020532777A (ja) ディープニューラルネットワークの実行方法、実行装置、学習方法、学習装置及びプログラム
Boussif et al. Securing DICOM images by a new encryption algorithm using Arnold transform and Vigenère cipher
CN107547773B (zh) 一种图像处理方法、装置及设备
CN108111858A (zh) 一种图片压缩方法及装置
TW202036388A (zh) 神經網路、用以修剪神經網路的層的權重及輸出特徵圖的方法、以及神經網路分析器
KR20220058628A (ko) 신경망 모델 압축
CN110148078A (zh) 基于二维压缩感知的两幅彩色图像压缩加密方法
Xiaoyong et al. Image encryption and compression based on the generalized knight’s tour, discrete cosine transform and chaotic maps
CN103581677A (zh) 图像加密压缩和解压解密方法及装置
WO2013119398A1 (en) System and method for hyperspectral image compression
CN105306936A (zh) 一种基于块压缩感知的图像编码方法
CN114638002A (zh) 支持相似性检索的压缩图像加密方法
Lang et al. Fast 4x4 Tchebichef moment image compression
WO2024199477A1 (zh) 图像解码和编码方法、装置、设备及存储介质
JP4883455B2 (ja) 符号化装置、符号化方法および符号化プログラム
Garg et al. Various Image Compression Techniques: A Review.
Kalunge et al. Time optimization of fractal image compression by using genetic algorithm
Ferdowsi et al. Secure representation of images using multi-layer compression

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190624

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190807

R150 Certificate of patent or registration of utility model

Ref document number: 6571193

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250