JP2018152887A - 改善されたファイルの圧縮及び暗号化 - Google Patents

改善されたファイルの圧縮及び暗号化 Download PDF

Info

Publication number
JP2018152887A
JP2018152887A JP2018091894A JP2018091894A JP2018152887A JP 2018152887 A JP2018152887 A JP 2018152887A JP 2018091894 A JP2018091894 A JP 2018091894A JP 2018091894 A JP2018091894 A JP 2018091894A JP 2018152887 A JP2018152887 A JP 2018152887A
Authority
JP
Japan
Prior art keywords
radix
vector
exponent
file
controller
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.)
Granted
Application number
JP2018091894A
Other languages
English (en)
Other versions
JP6647340B2 (ja
Inventor
エリーズ レヴェル
Elise Revell
エリーズ レヴェル
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.)
Kelicomp AB
Original Assignee
Kelicomp AB
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 Kelicomp AB filed Critical Kelicomp AB
Publication of JP2018152887A publication Critical patent/JP2018152887A/ja
Application granted granted Critical
Publication of JP6647340B2 publication Critical patent/JP6647340B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/55Compression Theory, e.g. compression of random number, repeated compression
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】データを圧縮することによって様々なネットワークノード間の通信を強化するためのより効率的な方法として、メモリとコントローラとを備えるコンピューティングデバイスを提供する【解決手段】コントローラは、基数ベクトルの最初の基数を現在の基数となるように設定し、現在の基数の指数を見出し、指数ベクトルに指数を含め、数を基数の指数乗だけ低減することによって残余数を決定し、現在の基数が基数ベクトルの最後の基数でないならば、現在の基数は基数ベクトルの次の基数となるように設定され、数は残余数となるように設定され、コントローラは新しい現在の基数の指数を見出し、現在の基数が基数ベクトルの最後の基数であるならば、定数が残余数となるように設定され、指数ベクトル及び定数を備える表現が生成される、ように更に構成される。【選択図】図6

Description

本出願は、改善されたファイルの圧縮及び暗号化のためのシステム、方法、装置、及びコンピュータ可読記憶媒体に関する。
データ通信及び遠距離通信の分野では、より大量のデータを送信する要求がますます増加している。通信チャネルがデータを送信又は伝送する能力を増大させるにつれて、映画、音楽、ゲームなどをストリーミングする需要が着実に増加する。近年開発が急速であり、通信チャネルの容量が何倍も倍増したとしても、通信される大量のデータに起因するボトルネックが依然として存在する。ユーザは、例えば、スマートフォンなどで映画を見る場合に映画が遅れていることを経験する可能性がある。
様々なネットワークノード間の通信を向上させる、上記の問題に対処する1つの方法は、データを、送信する前に圧縮することである。データを圧縮する様々な方法が存在するが、基本的な原理は、そのデータの元の表現より少ないビットを使用して、データ列、すなわち、任意のタイプの情報、をエンコードすることである。そのような圧縮は可逆的に、すなわちデータを解凍(decompress)するときに少しも情報を失うことなく、行われることができる。可逆圧縮は、少しも情報を失うことなく、より簡潔な方法でデータを提示するために統計的冗長性を識別し、除去することによってビットを低減する。殆どのデータが統計的な冗長性を有するので、可逆圧縮(lossless compression)は可能である。例えば、ビデオでは、幾つかのビデオフレームにわたって色が変わらない画像内の領域(ピクセル)が存在する可能性がある。相互に続く幾つかのビデオフレームに対して「緑色ピクセル、緑色ピクセル、…」を符号化する代わりに、データは「次の43のビデオフレームで緑色ピクセル」としてエンコードされることができる。これはランレングスエンコーディングの一例であるが、Lempel−Ziv(LZ)圧縮方式など、冗長性を排除してファイルサイズを低減するスキームが数多く存在する。
別の方法は、「不要な」情報を特定して除去することによってビットを低減する非可逆圧縮(lossy compression)を使用することある。このようなスキームについての出発点は、情報の多少の損失は容認できることである。データソースからの不要な詳細の除外は、記憶空間を節約することができる。非可逆データ圧縮スキームは、人々が問題のデータをどのように知覚するかに関する研究によって知らされる。例えば、人間の目は、色の変化に対してよりも輝度のわずかな変化に対して、より敏感である。非可逆圧縮の一例は周知のJEPG画像圧縮であり、これは情報の不要なビットを切り捨てることによってある程度機能する。失われた情報とサイズの低減との間には常にトレードオフがある。
データファイルのサイズを低減するプロセスは、ソース符号化という正式な名称があっても、一般的にデータ圧縮と呼ばれる。ソース符号化は、符号化がデータのソースにおいて、格納又は送信される前に行われることを意味する。圧縮の利点は、データを格納、送信、及び処理するために使用されるリソースを低減することである。しかしながら、圧縮データは、使用するために解凍されなければならず、それは、解凍を実行する場合に多少の追加の計算又は他のコストを必要とする。データを圧縮することに価値があるようにするには、追加の計算の複雑さに値するように、十分に圧縮されるべきである。
データを圧縮する試みが数多く行われてきた。データを可逆的に低減するためのより効率的な方法に対する要求は、一般の人々が彼らのデバイスにストリーミングされるデータのますます高い品質を要求するにつれて、ますます増大している。スマートフォンで映画を見るだけではもう十分ではなく、人は、高解像度(HD)品質で映画を見ることを望んでいる。従って、データを圧縮することによって様々なネットワークノード間の通信を強化するためのより効率的な方法に対するニーズがある。従って、ファイルを圧縮するための改善された、場合により代替の、方法に対するニーズがある。
本出願の教示の目的は、メモリとコントローラとを備えるコンピューティングデバイスを提供することによって上記に列挙された問題を克服することであり、前記コントローラは、ファイルの少なくとも部分を数に変換し、その数を少なくとも1つの指数(exponent)を備える指数ベクトル(exponent vector)に変換することによってファイルを圧縮し、各指数は基数ベクトル(base vector)の基数(base)に対応する、ように構成される。
1つの実施形態では、コントローラは、基数ベクトルの最初の基数を現在の基数となるように設定し、現在の基数の指数を見出し、指数ベクトルに指数を含め、数を基数の指数乗だけ低減することによって残余数を決定し、現在の基数が基数ベクトルの最後の基数でないならば、現在の基数は基数ベクトルの次の基数となるように設定され、数は残余数となるように設定され、コントローラは新しい現在の基数の指数を見出し、現在の基数が基数ベクトルの最後の基数であるならば、定数が残余数となるように設定され、指数ベクトル及び定数を備える表現が生成される、ように更に構成される。本出願の教示の目的はまた、ファイルの少なくとも部分を数に変換し、その数を、少なくとも1つの指数を備える指数ベクトルに変換し、各指数は基数ベクトルの基数に対応し、それにより、ファイルは指数ベクトルによって表される、ことによって前記ファイルを圧縮する方法を提供して、上記に列挙された問題を克服することである。
本出願の教示の目的は、指数ベクトルによって表されるファイルを解凍するコンピューティングデバイスを提供することによって上記に列挙された問題を克服することであり、ここで、前記コンピューティングデバイスは、基数ベクトルの各基数の指数ベクトルの対応する指数乗にし、結果を数に結合することによって数を決定し、前記数をファイルに変換するように構成されるコントローラを備える。
本出願の教示の目的はまた、基数ベクトルの各基数の指数ベクトルの対応する指数乗にし、結果を数に結合することによって数を決定し、前記数をファイルに変換することによって、指数ベクトルによって表されるファイルを解凍する方法を提供することにより、上記に列挙された問題を克服することである。
本出願の教示の目的はまた、プロセッサ上で実行されると、上記による方法のうちのいずれかを実行する命令でエンコードされているコンピュータ可読記憶媒体を提供することによって上記に列挙された問題を克服することである。
本出願の教示の目的はまた、メモリとコントローラとを備えるコンピューティングデバイスを提供することによって上記に列挙された問題を克服することであり、ここで、前記コントローラはファイルを暗号化するように構成されており、ファイルは、前記ファイルの少なくとも部分を数に変換し、数を少なくとも1つの指数を備える指数ベクトルに変換することによって圧縮され、各指数は基数ベクトルの基数に対応し、それにより、ファイルは指数ベクトルによって表され、前記コントローラは指数ベクトルを再順序付け(reorder)し、それによりファイルの表現を暗号化するように構成される。
本出願の教示の目的はまた、ファイルを暗号化する方法を提供することによって上記に列挙された問題を克服することであり、ここで、ファイルは、前記ファイルの少なくとも部分を数に変換し、数を少なくとも1つの指数を備える指数ベクトルに変換することによって圧縮され、各指数は基数ベクトルの基数に対応し、それにより、ファイルは指数ベクトルによって表され、前記コントローラは指数ベクトルを再順序付けし、それによりファイルの表現を暗号化するように構成される。
本出願の教示の目的はまた、プロセッサ上で実行されると、上記による方法を実行する命令でエンコードされているコンピュータ可読記憶媒体を提供することによって上記に列挙された問題を克服することである。
好ましくは最高の基数から始めて、逆さまから、すなわち各基数に対して最高の(又は近い)指数を順々に見つけようとして、指数を検索することによって、例えば、適切な基数を繰り返し見つけようとするトップダウン式検索と比較して、ファイルのより迅速な低減が達成されることが留意されるべきである。
また、本発明により基数の順序が分かっているので、指数/基数対の数が開始から不明であるシステムとは異なり、基数は指数と一緒に提供される必要がないという点で、より良い暗号化をも可能にする。
開示された実施形態の他の特徴及び利点は、以下の詳細な開示から、添付の従属請求項から、及び図面から現れるであろう。
一般に、特許請求の範囲で使用される全ての用語は、本明細書で明示的に定義されない限り、技術分野における通常の意味に従って解釈されるべきである。「a/an/the[要素、デバイス、構成要素、手段、ステップなど]」への全ての言及は、特に明示的に記述されない限り、要素、デバイス、構成要素、手段、ステップなどの少なくとも1つのインスタンスを参照するものとして、率直に解釈されるべきである。本明細書で開示される如何なる方法のステップも、明示的に記述されない限り、開示されている正確な順序で実行される必要はない。
本発明は添付の図面を参照して更に詳細に説明されるであろう。
本明細書の教示による端末の概略図である。 本明細書の教示による端末の構成要素の概略図である。 本出願の教示の1つの実施形態によるコンピュータ可読媒体の概略図を示す。 本明細書の教示の実施形態による圧縮/解凍システム400の概要を示す。 本明細書の教示の実施形態による指数ベクトルの表現500の概略図を示す。 本明細書の教示の実施形態による対応する基数ベクトルを示す。 本明細書の教示の実施形態による、基数ベクトルに基づいて数を指数ベクトルに低減する一般的な方法のフローチャートを示す。 本明細書の教示の実施形態による、最上位位置がマークされている数の表現を示す。 本明細書の教示の実施形態による、最上位位置を見出すことによって最高の指数をどのように決定するかの一般的な方法のフローチャートを示す。 本明細書の教示の実施形態による、ファイルを暗号化及び復号する方法のフローチャートを示す。 本明細書の教示の実施形態による、ファイルを暗号化及び復号するための方法のフローチャートを示す。 本明細書の教示の実施形態による、ファイルの繰り返し圧縮の概略図を示す。 本明細書の教示の実施形態による、ファイルを暗号化及び復号する方法のフローチャートを示す。
開示された実施形態は、本発明の或る実施形態が示されている添付の図面を参照して、以下により十分に記載されるであろう。しかしながら、本発明は、多くの様々な形態で具現化されることができ、本明細書に記載されている実施形態に限定されるものと解釈すべきではなく、むしろ、これらの実施形態は、本開示が十分かつ完全となり、本発明の範囲を当業者に十分に伝えることができるように、例として提供される。同様の番号は全体を通して同様の要素を指す。
図1は、本明細書の実施形態による計算デバイス100を示す。1つの実施形態では、計算デバイス100は無線又は有線のいずれかのネットワーク通信用に構成される。1つの実施形態では、計算デバイス100は無線及び有線の両方のネットワーク通信用に構成される。このような計算デバイス100の例は、少し挙げると、パーソナルコンピュータ、デスクトップ又はラップトップ、インターネットタブレット、携帯電話、スマートフォン、パーソナルデジタルアシスタント、サーバ、電子キー、マシン・ツー・マシンデバイス(M2M)、及びワークステーションである。
計算デバイス100は、以下では、パーソナルコンピュータ100として例示され、説明されるであろう。パーソナルコンピュータ又は端末100はディスプレイ110及びハウジング120を備える。ハウジングは、コントローラ又はCPU(図示せず)並びに記憶ユニット及び内部メモリなどの1つ又は複数のコンピュータ可読記憶媒体(図示せず)を備える。記憶ユニットの例はディスクドライブ又はハードドライブである。端末100は少なくとも1つのデータポートを更に備える。データポートは有線及び/又は無線とすることができる。データポートの例は、USB(「ユニバーサルシリアルバス(Universal Serial Bus)」)ポート、イーサネットポート、又は(IEEE規格802.11に準拠する)WiFiポートである。データポートは、端末100を他の端末又はサーバに接続することを可能にするように構成される。
端末100はキーボード130などの少なくとも1つの入力ユニットを更に備える。入力ユニットの他の例は、少し挙げると、コンピュータマウス、タッチパッド、タッチスクリーン、又はジョイスティックである。
図2は、コンピューティングデバイスの一般的な構造の概略図を示す。コンピューティングデバイスは、図1のような計算デバイス又はサーバとすることができる。1つの実施形態では、コンピューティングデバイスは、以下に更に詳細に説明されるであろうコンピューティング装置である。以下の説明では、コンピューティングデバイスは、図1による端末であるとして開示されるであろう。端末100は、端末100の全体的な動作を担当するコントローラ210を備え、好ましくは、市販の任意のCPU(「中央処理ユニット(Central Processing Unit)」)、DSP(「デジタル信号プロセッサ(Digital Signal Processor)」)、又は任意の他の電子プログラマブルロジックデバイスによって実現される。コントローラ210は、例えば、汎用又は専用プロセッサ内の、そのようなプロセッサによって実行されるようにコンピュータ可読記憶媒体(ディスク、メモリなど)240上に格納されることができる実行可能なコンピュータプログラム命令を使用することによって、ハードウェア機能を可能にする命令を使用して実装されることができる。コンピューティングデバイス100はコンピュータファイルを記憶するメモリ240を備える。コンピュータファイルは当該技術分野において周知であり、本明細書では単にファイルと称されるであろう。コントローラ210は、メモリ240から命令を読み出し、端末100の動作を制御するためにこれらの命令を実行するように構成される。メモリ240は、ROM、RAM、SRAM、DRAM、CMOS、FLASH、DDR、EEPROMメモリ、フラッシュメモリ、ハードドライブ、光学ストレージ、又はそれらの任意の組み合わせなどのコンピュータ可読メモリ向けの任意の一般に知られている技術を使用して実現されることができる。
メモリ240はコントローラ210によって様々な目的のために使用され、そのうちの1つは、端末100内の様々なソフトウェアモジュール用のアプリケーションデータ及びプログラム命令250を格納するためである。ソフトウェアモジュールは、リアルタイムオペレーティングシステム、マン・マシンインタフェース220用のドライバ、アプリケーションハンドラ、及び様々なアプリケーション250を含む。アプリケーション250は、電子メールなどのメッセージングアプリケーション、ブラウジングアプリケーション、バンキングアプリケーション、及び様々な他のアプリケーション250を含むことができる。
端末100は、図1の端末100においてディスプレイ110、キーパッド130から構成されるユーザインタフェース220を更に備えることができる。ディスプレイ110は、仮想キー(図示せず)を表示し操作することができるタッチディスプレイとすることができる。このような仮想キーは、物理キー130のいずれか又は全てを置き換えることができ、明示的に述べられていないならば、本明細書では相違はないとする。
ユーザインタフェース(UI、user interface)220はまた、UIドライバと一緒に、ディスプレイ110、キーパッド130、及びサウンドシステム、LEDインジケータなどの様々な他のI/Oデバイスと連携する1つ又は複数のハードウェアコントローラを含む。一般的に知られているように、ユーザは、このように形成されたマン・マシンインタフェースを介して端末100を操作することができる。
端末100は、端末が他のデバイスと通信することを可能にする通信インタフェース230を更に備えることができる。通信インタフェースは、様々な無線周波数技術を使用して通信するように適合されている無線周波数インタフェースとすることができる。そのような技術の例は、少し挙げると、WIFI、Bluetooth(登録商標)、W−CDMA、GSM、UTRAN、LTE、及びNMTである。
通信は、更に又は代替的に、端末が様々なネットワーク技術の使用を介して他のデバイスと通信することを可能にするように適合されている有線インタフェース230とすることができる。そのような技術の例は、少し挙げると、USB、イーサネット、ローカルエリアネットワーク、及びTCP/IP(Transport Control Protocol/Internet Protocol、伝送制御プロトコル/インターネットプロトコル)である。
このように、コンピューティングデバイス100は通信インタフェース230を介してファイルを受信及び/又は転送するように構成される。
図3は、上記で説明されているようなコンピュータ可読媒体の概略図を示す。コンピュータ可読媒体30はこの実施形態ではデータディスク30である。1つの実施形態では、データディスク30は磁気データ記憶ディスクである。データディスク30は、プロセッサなどのコントローラにロードされると、上で開示された実施形態による方法又は手順を実行する命令31を収容するように構成される。データディスク30は、命令をコントローラにロードするために、読取りデバイス32に接続され又は読取りデバイス32内に存在し、且つ読取りデバイス32によって読み出されるように用意される。1つ(又は幾つか)のデータディスク(群)30と併用した読取りデバイス32の1つのこのような例はハードドライブである。コンピュータ可読媒体は、コンパクトディスク、デジタルビデオディスク、フラッシュメモリ、又は一般に使用される他のメモリ技術などの他の媒体とすることもできることに留意されるべきである。そのような実施形態では、データディスク30は有形のコンピュータ可読媒体30の1つのタイプである。
命令31は、命令31をコントローラにロードするためにコンピュータデータ読取りデバイス34に無線(又は有線)インタフェースを介して(例えばインターネットを介して)送信されるコンピュータ可読信号33内に命令31を含むことによって、コンピュータ可読媒体上のコンピュータコード化されたデータを読取ることができるコンピュータ又は他のデバイスなどのコンピュータデータ読取りデバイス34にダウンロードされることもできる。そのような実施形態では、コンピュータ可読信号33は、無形のコンピュータ可読媒体30の1つのタイプである。
命令は、コンピュータ34のメモリ(図3では明示的に示されていないが、図2では240として参照される)に格納されることができる。
コンピュータプログラム、命令、コードなどへの言及は、プログラム可能なプロセッサ用のソフトウェア、あるいは、例えば、プロセッサ用の命令であろうと又は固定機能デバイス、ゲートアレイ、もしくはプログラマブルロジックデバイスなどの構成設定であろうと、ハードウェアデバイスのプログラム可能なコンテンツのようなファームウェアを包含するように、理解されるべきである。
図4は、少なくとも1つのコンピューティングデバイス100を含む、又は少なくとも1つのコンピューティングデバイス100内で実行される、本明細書の教示の実施形態による圧縮/解凍システム400の概要を示す。コンピューティングデバイス100のコントローラ210はファイル410を受信するように構成される。ファイル410は通信インタフェース230を介して又はメモリ240から受信されることができる。
コンピューティングデバイス100のコントローラ210は、圧縮されたファイル410の格納又は送信を改善するようにファイル410を圧縮するためにファイル410を処理するように構成される。これは、記憶スペース及び/又は帯域幅を節約するという点で技術的利点を有する。
1つの実施形態では、コントローラは、ファイル410をより小さい部分に裂き又は分割する手段415を採用し、各部分を個別に圧縮するように構成される。以下では、部分又は完全なファイルを処理することの間に相違はないこととする。ファイルの部分が個別に圧縮される実施形態では、対応するコントローラは、部分を個別に処理し、圧縮された部分の解凍によって生じるファイル部分を連結又は、そうでなれれば結合するように構成されるであろう。より小さな部分に分割する1つの利点は、計算が各部分に対して高速であることである。150バイトのファイル部分の例は、各部分に対して4.7%の圧縮率をもたらし、基数{2、3、5、7}のみを使用して4.7%の全体的圧縮という結果をもたらした。
コントローラ210は、ファイル410を数Xに変換する手段420を採用することによって、ファイル410(又はその部分)を圧縮するように構成される。1つの実施形態では、コントローラは、ファイル410を10進数、すなわち基数10を有する数に変換するように構成される。1つの実施形態では、コントローラは、ファイル410を16進数、すなわち基数16を有する数に変換するように構成される。1つの実施形態では、コントローラは、ファイル410を2進数、すなわち、基数2を有する数に変換するように構成される。そのような実施形態では、実際の変換は、ファイルを、数学的演算を実行するのにより適したフォーマットに単純に変換することによって表されることができる。1つのこのような実施形態では、変換されるフォーマットは文字列ベクトルである。
次に、コントローラ210は、数Xを指数ベクトルexpに変換する手段430を用いる。コントローラ210は、基数ベクトルbaseの指数を決定することによって数Xを指数ベクトルexpに変換するように構成され、数Xは、基数ベクトルbaseの各要素の指数ベクトルexpの対応する要素乗によって表されることができる。基数を慎重に選択することによって、数Xは、その数がその自然の形で表現される場合よりもはるかに短い形で表現されることができる。
説明するための簡単な例、10進数256(25610)に対応するファイル[1000000]は、対応する基数16の指数2で表される。従って、送信又は格納される必要があるのは、[10]=210(10進数2)が全てであり、25%の圧縮率が既に達成された。
次に、コントローラ210は、同じ又は別のコンピューティングデバイスによる後の検索のために指数ベクトルを格納又は送信することができる。以下では、格納はメモリ240への送信によって表されることとし、メモリ240に格納することと通信インタフェース230を介して送信することとの間に相違はないこととする。
同じ又は別のコンピューティングデバイスのコントローラ210は、メモリ240から又は通信インタフェース230を介してのいずれかで指数ベクトルexpを受信し、指数ベクトルexpを、指数ベクトルexpを数に変換する手段440を採用して、数に変換するように構成される。その後、コントローラ210は、数Xをファイルに変換する手段450を採用し、それによりファイル410を解凍する。ファイル410の部分が圧縮されている実施形態では、コントローラはその部分を解凍し、次いで、その結果として得られるファイルの部分を完結したファイルに連結又は他の方法で結合する。特に、部分に対応する指数ベクトルexpが順不同で受信される場合、コントローラ210は順序を決定し、その部分を正しい順序で結合するように構成される。順序は、その部分を表す数に対して指数ベクトルexpの一部である連続又は順序番号によって示されることができる。
コントローラ210は、メモリから(又は通信インタフェースを介して)基数ベクトルbaseを検索するように構成され、ファイルを圧縮するコントローラ及びファイルを解凍するコントローラ(同じコントローラである可能性がある)の両方が同じ基数ベクトルbaseへのアクセスを有する場合、その数は、単純に基数ベクトルbaseの要素の指数ベクトルexpの要素乗及び部分的な結果の結合によって、容易に再構築されることができる。
図5Aは指数ベクトルexpの表現500の概略図を示す。指数ベクトルexpの各要素は表現500の(ビット)フィールドによって表される。図5Aの例では、指数ベクトルexpは、順序数(ordering number)n、スケーリング数(scaling number)N、指数a、b、cなど、及び定数Kを含む。
順序数n、スケーリング数N、及び/又は定数Kは任意選択的であることに留意されるべきである。指数ベクトルexpの必須要素は、基数指数a、b、cなどである。
1つの実施形態では、指数ベクトルexpは、1つ又は幾つかの基数に対して複数の指数を含むこともできる。例えば、指数ベクトルexpは、基数{A、B、C}を含む基数ベクトルbaseに対して{n、N、a、a、b、c、c、K}とすることができる。
1つの実施形態では、指数ベクトルexpは、基数ベクトルの各基数に対して定数cを含むこともできる。これらの定数cはスケーリング定数である。
図5Bは対応する基数ベクトルbaseを示す。図5Bの例では、基数ベクトルは基数A、B、Cなどを含む。
ファイル数は、基数ベクトルbaseの基数の指数ベクトルexpの指数乗を加算、乗算、又はそれらの組み合わせによって結合することにより、再現されることができる。
数を再現する1つの一般的な式は、
ここで、
は乗算や加算などの結合演算を表す。
上で述べたように、各基数は複数の対応する指数を有することができる。このような場合、数Xのより一般的な式は、
ここで、aiは基数Aの指数(群)であり、biは基数Bの指数(群)であり、ciは基数Cの指数(群)である。代替的に、基数ベクトルbaseは重複した基数を含むことができ、それによって、最初の式が適用されることができる。同様のことは、以下に示す式に対しても当てはまる。
必要な計算の数を低減し、指数のサイズを低減し、圧縮の解像度(resolution)を向上させるために、倍率(scaling factor)を使用することができる。
各基数−指数対もスケーリングされる実施形態では、一般化された式は以下のようになる。
ここで、cは倍率である。
代替的に、各基数の合計はスケーリングされ(これは同じ基数に対する全ての倍率は同じである、c=cj、ことに対応する)、一般化された式は次のようになる。
ここで、cは基数Aに対する倍率である。
スケーリングの組み合わせに対して、式は次のようになる。
式は再帰的な要素又は反復される要素を有する可能性があることも留意すべきである。これを説明するために、以下の表記が選択される。
ここで、Nj及びKjは各繰り返しに対する乗数及び定数であり、Nt及びKtは合計式に対する乗数及び定数である。上記に指摘したように、全ての倍率、乗数、及び/又は定数並びに基数は、明示的に式の一部である必要はない。
定数Kは、数が奇数であることを示し、それにより、処理を、偶数のみを低減するように低減するために使用されることができ、これは、その後、低減する前にその数が実際に奇数又は偶数であったかどうかを示すためにビットを伴うであろう(その後、奇数は低減される前に−1で減算され、再構築時に+1が加算されるであろう)。従って、定数Kは、複数の部分、すなわち、奇数/偶数を表す1つの部分及び可能な剰余を示す1つの部分を有する可能性がある。上記の表記によって示されるように、式の各繰り返しに対して1つの(1組の)定数(群)が存在する可能性がある。
結合演算
は、通常括弧で示すようなセグメント化された計算又は部分的な計算を示すために使用されることもできる。もちろん、これは複数回出現する幾つかの基数によって表わされることもできる。例えば(この例から除外された定数、倍率、乗数、ただし、上の表記で示されているように、それらを含めることもできることが留意されるべきである)
(B+C)は、A*B+A*Cとして表されることも可能である。
これが幾つかのステップで繰り返される場合、表記は
ΣAjaj(Bjbj+Cjcj)=A1a1(B1b1+C1c1)+A2a2(B2b2+C2c2)…
となる可能性があり、これは、
ΣAjaj*Bjbj+Ajaj*Cjcj=A1a1B1b1+A1a1C1c1+A2a2B2b2+A2a2C2c2
として表されることも可能である。
上記の式が3つの基数のみを有していても、任意の数の基数が可能であることが留意されるべきである。低い数の基数がより短い指数ベクトルをもたらすので、基数の数は、より高い圧縮比を可能にするために、低く、例えば10未満又は5未満に保たれることができる。
負の定数を避けるために、指数が0である基数は無視されることができ、従って、基数が互いに加算される場合、すなわち、
の場合、合計に寄与しない。代替的に、指数は決定された指数よりも大きい指数として格納され、その後、基数は指数−1乗される。
基数ベクトル用に選択される基数は、設計上の問題に依存し、圧縮されるファイルのサイズ、圧縮の比率、及び圧縮の速度に応じて選択されることができる。例えば、大きな基数は、より短い指数ベクトル及びより速い圧縮を提供するが、そのような良好な解像度を提供せず、大きな定数及び場合により順序数を必要とする。大きな基数はまた、より短い指数をもたらす。より低い基数はより高い解像度を提供するが、より遅い圧縮を提供する可能性がある。
1つの実施形態では、大きな基数が数Xをより速く低減するので、基数は、解像度及びより速い圧縮を提供するように間隔を空けられる。
基数は指数的に、
A=10(=10)、B=100(=10)、C=1000(=10
A=10、B=100(=A)、C=10000(=B
又は、線形に大きくなることができる。
A=10、B=20、C=30
A=2、B=3、C=5
基数が素数の場合、それらは除算ループが起きることを回避する。このような基数ベクトルの例は、{2、3、5、7}(線形)及び{2、31、127、1027}(指数的)である。
基数の1つが数の書式(例えば、基数が2進数に対して2、10進数に対して10など)の基数と等しく、その基数が乗算によって結合される場合、表現の末尾の0の数を単純に数えることによって、それによって除算演算を回避して、最大ではないかもしれないが少なくとも部分的な、指数を見出すのは簡単である。
1つの実施形態では、各基数(又は少なくとも1つの基数)の指数は、その基数に対してスケーリング定数を伴うことができる。これは、特に、大きな数X(又は低減されている場合、数Xの大きな残余)に対して、数Xのより高速な圧縮/低減を可能にする。例えば、数A=10、B=100を使用して数220を低減することになっている場合、その数は、表記X=c+c及びexp={c;a;c;b}を使用して、11011100より短い2;1;2;1又は2進数10;1;10;1すなわち101101で表すことができる。同じ数が、倍率なしで、すなわちX=A+B+K及びexp={a;b;K}を使用して、表現されるならば、数220は{1;1;11011110}と表されるであろう。代替的に、一般的なスケーリング、すなわち、{10;1;1}となるであろう表記X=N(A+B)+K及びexp={N;a;b;K}、が使用される可能性がある。見られるように、倍率の使用は、指数ベクトルのサイズ、又は少なくとも指数ベクトルの要素を大幅に低減することができる。倍率を使用することの利点は、指数のみの使用は、指数の増加が大きすぎる変化をもたらす可能性があるが、一方で単純なスケーリングは数を迅速に低減でき且つ倍率は基数より常に小さい(又はそれらは必要とされない可能性がある)ので、それらは多くのスペースを必要とせず、従って指数ベクトルの大きさに多くを加えないことをもたらす、という事実に由来する。
同じ基数に対して複数の指数を使用することは、その数又はその数の残余が最高の又は次の基数よりもはるかに大きい場合に有益となる。それで、所与の基数に対してその数内に複数の基数−指数対を適合させることが可能である。
図6は、数を、基数ベクトルbase={A、B、…、D}に基づいて指数ベクトルexp={c、a、c、b、…、c、d}に低減する一般的な方法のフローチャートを示す。数は、変換されたファイル(又は部分ファイル)の結果とすることができる。倍率は個別的に又は全体的に任意選択的であることが留意されるべきである。また、図6の例で使用されている表記では表現されていないが、少なくとも1つの基数の複数の指数(及び倍率)の使用も可能であり、代替として開示されることになることに留意されたい。
方法は数Xを受信する610ことから始まる。次に、基数の指数が見出される620。1つの例では、(次の)最高の指数が見出される。1つの例では、指数が(次の)最大の基数に対して見出される。1つの例では、最大の基数の最高の指数が見出される。図6の表記例では、基数Dの最高dが見出される。指数dは数Xを基数Dで繰り返し除算することによって見出されることができる。指数dは代わりにテーブルルックアップによって見出されることができる。指数dは、数Xの最上位位置(msp、most significant position)を見出すことによって代替的に見出されることができる。この選択肢は、以下の図7及び8を参照して詳細に説明されるであろう。
最高の指数dが見出されたので、倍率は、(それが使用される場合)、数Xを最高の基数Dのd乗で除算し、その結果を切り捨てることにより決定されることができる630。使用されている表記では、c=Trunc(X/D)。
その後、残余数Xresは、数から倍率を掛けた基数の指数乗を減算することによって、すなわちXres=X−cで見出される640。又は、データ論理表記では、Xres=Modula(X/D)。基数が乗算によって結合されることになっている実施形態では、残余数は除算によって決定される。両方の場合において、残余数は、基数の指数乗によって数を低減することで決定される。
任意選択的に、複数の指数が現在処理中の基数に対して見出されることになっている場合、方法は、残余数Xresを数Xとして使用して、すなわちX=Xresに設定して645、基数の最高の指数を見出すことに戻る。
その後、指数を見出すべき基数ベクトルbaseに更に基数が存在するかどうかが判定される650。そうであるならば、次のより低い基数を使用して残余数を低減することすなわちX=Xres及びbase=basek−1に設定する660、に進む。ここで、kは、基数ベクトルが昇順で順序付けられていると仮定して現在の基数のインデックスである。これは、指数ベクトルexpの(他の)指数c、b、a…を提供する。基数がもはや存在しないならば、残余数は残り又は定数Kであり、すなわちK=Xresに設定され670、指数ベクトルexpは完了し680、数Xに解凍して戻されその後の検索のために格納又は送信されることができる。
指数ベクトルを数Xに解凍する690ために、単純に指数ベクトルexpを圧縮に使用される式に挿入する。この式は、上記で与えられた任意の種類の式とすることができる。
上記に開示されているように、基数の最高の指数は、数Xに対して最上位位置を見出すことによって見出されることができる。図7は、最上位位置mspがマークされている数Xの表現を示す。2進数Xに対しては、最上位位置は最上位の1のビットである。図7の例では、数X=109が8ビットで示され、mspは位置2である。図7の例では、最上位位置の番号付けは最下位位置から最上位に行くが、番号付け自体は重要ではない可能性があることが留意されるべきである。1つの実施形態では、それはテーブルルックアップに対してのみ使用される。1つの実施形態では、しかしながら、それは、指数をmspに基づいて計算することによって指数を決定するために使用される。
図8は、最上位位置を見出すことによってどのように最高の指数を決定するかの一般的な方法のフローチャートを示す。
mspを見出すために、コンピューティングデバイスのコントローラは、最初の非ゼロ要素を見出すために数Xの表現を単純に検索することができる810。数Xは任意の数ではなく、ファイル(の部分)を表しているので、その数が全て0からなる又は多数の0で始まっているであろう可能性は非常に少なく、従って、mspの検索は、ほんのわずかな比較を必要とし、かなり高速となるであろう。
その後、最高の指数が見出される820。指数はテーブルルックアップを介して見出されることができる。そのようなテーブルの一例を、2進数X(=109)及び基数(=7)に対しての図7の例について以下に示す。
代替的に、最高の指数は、基数ベクトルbaseの現在の基数、数Xの数の基数(2進数、10進数、16進数、…)、及びmspに基づいて計算することによって、見出されることができる。
基数B、指数e、及び数の基数Dに対して、最高の指数は次のように決定されることができる。
代替的に、指数e又は少なくとも指数eに近い指数は、低減するために使用する基数(すなわち、基数ベクトルbaseの要素(群))が既知であり、数表現の基数も既知であり、それによって基数Bの数の基数D根が予め決定されることができるので、より高速な方法で決定されることができる。それで、指数eは次のように決定されることができる。
又は代替的に、
ここで、
又は
はより高速な計算のために予め決定されることができる。
指数が0であることが見出される830場合、次のより低い基数が選択され、指数は、上のようにテーブルルックアップ又は計算のいずれかによってより低い基数に基づいて決定される。従って、大きい数、すなわち大きなファイルに対して、指数−mspテーブルを、指数がゼロである全ての要素を除外することによって、それに応じて短くすることができる。その結果、図7の例の表は次のようになる。
代替的に、テーブルは指数だけでなく、対応する基数も含むことができる。そのような場合、指数がゼロであるかどうかの決定は、定数Kが、もはやより低い基数が存在しない場合と同じ場合の数であるという結果をもたらす。図7及び図8の例では、各基数に対して1つの指数のみが決定されると仮定されているが、同じ方法論が1つ又は複数の基数に対して複数の指数に使用されることができる。一般化するために、複数の指数を使用することは、重複した基数を有する基数ベクトルを有すると見なされることができる。これは、上記の及び図6を参照した開示に対して当てはまる。
図8に関して、このように、まだ基数が存在するか否かの判定835が、指数がゼロであるかどうかの判定830に続く。まだ他に基数が存在するならば、方法は次の基数に進む。基数がもはや存在しないならば、定数Kは数Xに等しく設定され850、指数系列は終了する。
指数が0ではないと判定される場合、指数が見出され、方法は、指数を見出した620後に図6のように進む。
基数が数の基数で均等に分割可能であるならば、基数の指数乗(D)は一連のシフトによって計算され、時間のかかる乗算動作は必要ではない。
このように、ファイルを数(又は各々がファイルの部分に対応する一連の部分数)に変換し、式及び基数ベクトルbaseを用いてその数を指数ベクトルexpに低減することによって、ファイルが圧縮されることができる方法が、上に開示されている。その結果、ファイルは、格納又は送信のために指数ベクトルによって単独で表されることができる。ファイルを解凍するために、必要なものは、基数ベクトルの基数に関する知識並びに任意の倍率及びそれらが適用される方法に関する知識だけである。
基数、指数の順序、倍率が適用されるべきか否か、などを知らずにファイルを解凍することは不可能であるので、本明細書の方法を使用してファイルを暗号化することも可能であることは当然明らかである。
知られているように、公開暗号化スキームは、暗号化に使用される式が公に開示されている業界で好まれている。これは、より広範な普及につながる可能性があるので、本明細書に提示される圧縮スキームにも有益であろう。しかしながら、指数ベクトルの要素を送信する順序について秘密裏に別の当事者と単に合意するのみで、ファイルは圧縮されるだけでなく暗号化されることができる。特に、ファイルがより小さな部分に分割されることができる大きなファイルの場合、解凍結果がファイル全体の一部のみを提供し、解凍の正しさをチェックすることを困難にするであろうから、指数の再順序付けされた結合が正しい解凍につながったかどうかを解読することは殆ど不可能である。
より小さな部分に分割する利点の1つは、各部分に対する計算が高速であることである。150バイトのファイル部分の例は、各部分に対して4.7%の圧縮率をもたらし、基数ベクトル{N、2、3、5、7、K}のみを使用して4.7%の全体的圧縮に至った。
図9は、本明細書の教示によるファイルを暗号化及び復号する方法のフローチャートを示す。ファイルは、上記のように圧縮され910、指数ベクトルexpをもたらす。
指数ベクトルexpは、再順序付けされ920、それにより圧縮を効果的に暗号化し、その後格納又は送信される930。
代替的に、破線920のボックスによって示されているように、指数ベクトルは再順序付けされない。そのような実施形態では、基数及びその順序は秘密に保たれる。
ファイルを解凍する950前に、指数ベクトルexpは、実際に指数ベクトルexpを再順序付けするか又は対応する式を適用するかのいずれかによって、使用される式に適合するように再び順序付けされることができる940。
本明細書の開示が指数ベクトルを再順序付ける傾向があるとしても、同じ教示が、基数ベクトルbaseを再順序付けすること、すなわち、圧縮器又は解凍器のいずれかによって異なる式を使用すること、これは実際には指数ベクトルの再順序付けに対応する、に適用されることができることに留意すべきである。
圧縮自体が対応するファイルを暗号化するのにも役立つので、指数及び/又は基数ベクトルが順序に関して秘密に保たれているか且つ/又は維持されているかにかかわらず、暗号化が行われることが留意されるべきである。
1つの実施形態、特にファイルが幾つかの部分に分割されている実施形態では、基数ベクトルbaseも送信又は格納されることができる。次に、指数が対応する基数と対になることができるように、指数ベクトルexp及び基数ベクトルbaseのフォーマットを仮定することによって、一般式がファイルを解凍するために使用されることができる。このような一般的なフォーマットの1つの例は、指数ベクトルexpの各要素が、同じ順序で基数ベクトルbaseの基数に対応することである。別の例は、指数ベクトルexpの各要素対が、同じ順序で基数ベクトルbaseの基数に対応する倍率及び指数を構成することである。
そのような実施形態では、基数ベクトル及び指数ベクトルは、更なる可能な暗号化を提供するために、再順序付けられることができる。また、指数ベクトル(及び場合により基数ベクトル)は、ファイル部分ごとに異なる順序で順序付けられることができる。再順序付けは、式に基づく又はテーブルに従うとすることができる。1MBの例示的なファイル、150バイトのファイル部分(400桁の10進数に対応)、及び4つの基数を有し、倍率を使用する基数ベクトルに対して、ファイル部分ごとに、4!*8!=967680の可能性が存在し、967680*6991[=1MB/150バイト]=6,765,050,880の可能性をもたらす。不規則な順序でファイル部分を送信することと組み合わせると、可能性の数は更により大きくなる。
ファイルを復号するために、指数ベクトルは元の順序に再順序付けされるか又は復号は再順序付けされた基数ベクトルに基づくとすることができる。代替的又は追加的に、順序及び/又は基数は秘密に保たれる。
基数ベクトルbaseが圧縮ファイルの一部として格納又は送信される実施形態では、基数はmspに基づいて動的に選択されることができる。例えば、多くの先行ゼロ(低いmsp)が存在する場合、より小さい基数が選択され、一方mspが高い場合、より高い基数が選択される。これは、やや低いがより高速の圧縮及び適合した解像度をもたらす。
本明細書の教示が送信されるべき指数ベクトルexp(スカラー及び/又は定数を含む可能性がある)をもたらすので、本発明者は、ファイルによって表される指数ベクトルそれ自体も(更に)圧縮又は暗号化されることができることを認識した。
従って、1つの実施形態では、方法及びその方法を組み込むデバイスは、所望の圧縮率が達成されるまで、指数ベクトルexp(スカラー及び/又は定数を含む可能性がある)を圧縮(及び/又は暗号化)し続けるように構成される。
図10は、コンピューティングデバイスによって実行される可能性があるこのような方法のフローチャートを示す。ファイルは受信され、数Xに(上記で論じたように、場合により部分的に)変換され1010、数Xは指数ベクトルE(スカラー及び/又は定数を含む可能性がある)に圧縮される。指数ベクトルEは、元のファイル(又はその一部)と比較されるファイル(構造)によって表される。圧縮率(ファイル(部分)のサイズで除算された指数ベクトルのサイズとして定義される)1030が閾値レベル、例えば5%、10%、15%、20%より低くない又は0〜25%の範囲内でない場合、指数ベクトルEは圧縮されて新しい指数ベクトルE’となる数X’に変換される。元のファイル(部分)と比較されて新しい指数ベクトルE’の圧縮率が決定され1020、それが閾値を超えている1030場合、この手順は、所望の圧縮比が達成されるまで繰り返される。
これは、決定されるべき部分サイズと計算複雑さ対計算速度との間の交換が行われることを可能にする。
例えば、指数ベクトルを見出す計算の複雑度は、より大きなファイル部分に対して増加するが、より小さい部分の圧縮率は、より大きい部分の圧縮率よりも高い。連続的に圧縮することによって、部分サイズと計算速度との間のトレードオフが達成されることができる。これは、計算の複雑さが部分サイズと非線形に増加するが、圧縮を反復することは線形複雑度に基づく。
図11は、どのように、ファイル(部分)Xのサイズが繰り返し圧縮されるかの概略図を示す。各圧縮はそれ自体67%の圧縮比をもたらし、それによって、得られる指数ベクトルはそれぞれ67%、44%、30%及び20%に圧縮される。
ファイルを解凍するために、解凍ビットが各圧縮の前に追加される1015。解凍ビットは、更なる解凍が実行されるべきかどうかを示す(1は更なる解凍を示し、0は解凍が終了したことを示す)。ファイルが解凍されることになっている場合、指数ベクトル(スカラー及び/又は定数を含む可能性がある)が受信され1210、解凍される1220。解凍ビットがチェックされ1230、それが更なる解凍を示す(ビット=1)場合、解凍が繰り返される。解凍ビットがそれ以上の解凍を示さない場合(BIT=0)、解凍は完了している。
本発明は、主に少数の実施形態を参照して上に記述されている。しかしながら、当業者には容易に理解されるように、添付の特許請求の範囲によって規定されるように、上に開示されているもの以外の他の実施形態も本発明の範囲内において同様に可能である。
本発明は、主に少数の実施形態を参照して上に記述されている。しかしながら、当業者には容易に理解されるように、添付の特許請求の範囲によって規定されるように、上に開示されているもの以外の他の実施形態も本発明の範囲内において同様に可能である。
なお、本発明の実施の態様は、つぎのとおりである。
[1]
メモリ(240)とコントローラ(210)とを備えるコンピューティングデバイス(100)であって、前記コントローラ(210)は、
ファイル(410)の少なくとも部分を数(X)に変換することと、
前記数(X)を、少なくとも1つの指数を含む指数ベクトル(exp)に変換することとによって前記ファイル(410)を圧縮するように構成され、各指数は基数ベクトル(base)の基数に対応し、それにより、前記ファイル(410)は前記指数ベクトル(exp)で表され、前記コントローラは、
前記基数ベクトルの最初の基数を現在の基数となるように設定し、
前記現在の基数の指数を見出し、
前記指数ベクトル(exp)に前記指数を含め、
前記基数の前記指数乗だけ前記数(X)を低減することによって残余数(X res )を決定するように構成され、
前記現在の基数が前記基数ベクトル(base)の最後の基数でないならば、
前記現在の基数は前記基数ベクトル(base)の次の基数となるように設定され、
前記数(X)は前記残余数(X res )となるように設定され、前記コントローラ(210)は新しい現在の基数の指数を見出し、
前記現在の基数が前記基数ベクトル(base)の最後の基数であるならば、
定数(K)が前記残余数(X res )となるように設定され、前記指数ベクトル(exp)及び前記定数を含む表現が生成され、それにより、
前記ファイル(410)の前記少なくとも部分が前記数(X)に変換される、
コンピューティングデバイス(100)。
[2]
前記指数は最高の指数である、請求項1に記載のコンピューティングデバイス(100)。
[3]
前記コントローラ(210)は、テーブルルックアップを介して前記指数を見出すように更に構成される、請求項1〜2のいずれか一項に記載のコンピューティングデバイス(100)。
[4]
前記コントローラ(210)は、場合により繰り返し除算によって前記指数を見出すように更に構成される、請求項1〜3のいずれか一項に記載のコンピューティングデバイス(100)。
[5]
前記コントローラ(210)は、最上位位置(msp)に基づいて前記指数を見出すように更に構成され、前記最上位位置(msp)は、前記数(X)の表現において非ゼロである最初の要素の位置である、請求項1〜4のいずれか一項に記載のコンピューティングデバイス(100)。
[6]
前記コントローラ(210)は、テーブルルックアップを介して前記最上位位置(msp)に基づいて前記指数を見出すように更に構成される、請求項5に記載のコンピューティングデバイス(100)。
[7]
前記コントローラ(210)は、前記表現の前記基数の前記最上位位置(msp)乗の現在の基数根を計算することによって、前記最上位位置(msp)に基づいて前記指数を見出すように更に構成される、請求項5に記載のコンピューティングデバイス(100)。
[8]
前記コントローラ(210)は、前記現在の基数の前記表現の前記基数根を計算し、これに前記最上位位置(msp)を掛けることによって前記最上位位置(msp)に基づいて前記指数を見出すように更に構成される、請求項5に記載のコンピューティングデバイス(100)。
[9]
前記コントローラ(210)は、前記数(X)を前記現在の基数の前記指数乗で除算することによって前記現在の基数に対する倍率を決定し、その後、前記倍率が掛けられた前記基数の前記指数乗だけ前記数(X)を低減させることによって残余数(X res )を決定するように更に構成される、請求項1〜8のいずれか一項に記載のコンピューティングデバイス(100)。
[10]
前記コントローラ(210)は、前記数(X)から前記基数の前記指数乗を減算することによって前記数(X)を低減させるように更に構成される、請求項1〜9のいずれか一項に記載のコンピューティングデバイス(100)。
[11]
前記指数ベクトル(exp)の少なくとも2つの指数が、前記基数ベクトル(base)の同じ基数に対応する、請求項1〜10のいずれか一項に記載のコンピューティングデバイス(100)。
[12]
前記基数ベクトル(base)が重複の基数を含む、請求項1〜11のいずれか一項に記載のコンピューティングデバイス(100)。
[13]
前記コントローラ(210)は、前記指数ベクトル(exp)を再順序付けすることによって前記ファイル(410)を暗号化するように更に構成される、請求項1〜12のいずれか一項に記載のコンピューティングデバイス。
[14]
前記コントローラ(210)は、ファイル表現を数(X)として解釈することによって、前記ファイル(410)を前記数(X)に変換するように更に構成される、請求項1〜13のいずれか一項に記載のコンピューティングデバイス。
[15]
ファイル(410)の少なくとも部分を数(X)に変換するステップと、
前記数(X)を、少なくとも1つの指数を含む指数ベクトル(exp)に変換するステップであって、各指数は基数ベクトル(base)の基数に対応し、それにより、前記ファイル(410)は前記指数ベクトル(exp)で表される、ステップと、によって前記ファイル(410)を圧縮する方法であって、前記方法は、
前記基数ベクトルの最初の基数を現在の基数となるように設定するステップと、
前記現在の基数の指数を見出すステップと、
前記指数ベクトル(exp)に前記指数を含めるステップと、
前記基数の前記指数乗だけ前記数(X)を低減することによって残余数(X res )を決定するステップと、を含み、
前記現在の基数が前記基数ベクトル(base)の最後の基数でないならば、
前記現在の基数は前記基数ベクトル(base)の次の基数となるように設定され、
前記数(X)は前記残余数(X res )となるように設定され、前記コントローラ(210)は新しい現在の基数の指数を見出し、
前記現在の基数が前記基数ベクトル(base)の最後の基数であるならば、
定数(K)が前記残余数(X res )となるように設定され、前記指数ベクトル(exp)及び前記定数を含む表現が生成され、それにより、
前記ファイル(410)の前記少なくとも部分が前記数(X)に変換される、
方法。
[16]
請求項1〜15のいずれか一項に記載の圧縮されたファイル(410)を解凍するためのコンピューティングデバイス(100)であって、前記ファイル(410)は指数ベクトル(exp)によって表され、前記コンピューティングデバイスは、基数ベクトル(base)の各基数を指数ベクトル(exp)の対応する指数乗にし、その結果を数(X)に結合することによって前記数(X)を決定し、前記数(X)をファイル(410)に変換するように構成されるコントローラを備える、コンピューティングデバイス(100)。
[17]
請求項1〜15のいずれか一項に記載の圧縮されたファイル(410)を解凍する方法であって、基数ベクトル(base)の各基数を指数ベクトル(exp)の対応する指数乗にし、その結果を数(X)に結合することによって前記数(X)を決定するステップと、前記数(X)を前記ファイル(410)に変換するステップとによって、前記ファイル(410)は指数ベクトル(exp)によって表される、方法。
[18]
プロセッサ上で実行されると、請求項15又は17に記載の方法を実行する命令(31)でエンコードされているコンピュータ可読記憶媒体(30)。
[19]
メモリ(240)とコントローラ(210)とを備えるコンピューティングデバイス(100)であって、前記コントローラ(210)はファイル(410)を暗号化するように構成され、前記ファイルは、
前記ファイル(410)の少なくとも部分を数(X)に変換することと、
前記数(X)を、少なくとも1つの指数を含む指数ベクトル(exp)に変換することとによって圧縮され、各指数は基数ベクトル(base)の基数に対応し、それにより、前記ファイル(410)は前記指数ベクトル(exp)で表され、前記コントローラは、
前記基数ベクトルの最初の基数を現在の基数となるように設定し、
前記現在の基数の指数を見出し、
前記指数ベクトル(exp)に前記指数を含め、
前記基数の前記指数乗だけ前記数(X)を低減することによって残余数(X res )を決定するように構成され、
前記現在の基数が前記基数ベクトル(base)の最後の基数でないならば、
前記現在の基数は前記基数ベクトル(base)の次の基数となるように設定され、
前記数(X)は前記残余数(X res )となるように設定され、前記コントローラ(210)は新しい現在の基数の指数を見出し、
前記現在の基数が前記基数ベクトル(base)の最後の基数であるならば、
定数(K)が前記残余数(X res )となるように設定され、前記指数ベクトル(exp)及び前記定数を含む表現が生成され、それにより、
前記ファイル(410)の前記少なくとも部分が前記数(X)に変換され、
前記コントローラは、前記指数ベクトル(exp)を再順序付け、それにより、前記ファイル(410)の前記表現を暗号化するように更に構成される、
コンピューティングデバイス(100)。
[20]
前記コントローラは、前記基数ベクトル(base)を再順序付けするように更に構成される、請求項19に記載のコンピューティングデバイス(100)。
[21]
ファイル(410)を暗号化する方法であって、前記ファイルは、
前記ファイル(410)の少なくとも部分を数(X)に変換するステップと、
前記数(X)を、少なくとも1つの指数を含む指数ベクトル(exp)に変換するステップと、によって圧縮され、各指数は基数ベクトル(base)の基数に対応し、それにより、前記ファイル(410)は前記指数ベクトル(exp)で表され、前記コントローラは、
前記基数ベクトルの最初の基数を現在の基数となるように設定し、
前記現在の基数の指数を見出し、
前記指数ベクトル(exp)に前記指数を含め、
前記基数の前記指数乗だけ前記数(X)を低減することによって残余数(X res )を決定するように構成され、
前記現在の基数が前記基数ベクトル(base)の最後の基数でないならば、
前記現在の基数は前記基数ベクトル(base)の次の基数となるように設定され、
前記数(X)は前記残余数(X res )となるように設定され、前記コントローラ(210)は新しい現在の基数の指数を見出し、
前記現在の基数が前記基数ベクトル(base)の最後の基数であるならば、
定数(K)が前記残余数(X res )となるように設定され、前記指数ベクトル(exp)及び前記定数を含む表現が生成され、それにより、
前記ファイル(410)の前記少なくとも部分が前記数(X)に変換され、
そして、前記コントローラは、
前記指数ベクトル(exp)を再順序付けし、それにより、前記ファイル(410)の前記表現を暗号化する、ように構成される、
方法。
[22]
プロセッサ上で実行されると、請求項21に記載の方法を実行する命令(31)でエンコードされているコンピュータ可読記憶媒体(30)。

Claims (22)

  1. メモリ(240)とコントローラ(210)とを備えるコンピューティングデバイス(100)であって、前記コントローラ(210)は、
    ファイル(410)の少なくとも部分を数(X)に変換することと、
    前記数(X)を、少なくとも1つの指数を含む指数ベクトル(exp)に変換することとによって前記ファイル(410)を圧縮するように構成され、各指数は基数ベクトル(base)の基数に対応し、それにより、前記ファイル(410)は前記指数ベクトル(exp)で表され、前記コントローラは、
    前記基数ベクトルの最初の基数を現在の基数となるように設定し、
    前記現在の基数の指数を見出し、
    前記指数ベクトル(exp)に前記指数を含め、
    前記基数の前記指数乗だけ前記数(X)を低減することによって残余数(Xres)を決定するように構成され、
    前記現在の基数が前記基数ベクトル(base)の最後の基数でないならば、
    前記現在の基数は前記基数ベクトル(base)の次の基数となるように設定され、
    前記数(X)は前記残余数(Xres)となるように設定され、前記コントローラ(210)は新しい現在の基数の指数を見出し、
    前記現在の基数が前記基数ベクトル(base)の最後の基数であるならば、
    定数(K)が前記残余数(Xres)となるように設定され、前記指数ベクトル(exp)及び前記定数を含む表現が生成され、それにより、
    前記ファイル(410)の前記少なくとも部分が前記数(X)に変換される、
    コンピューティングデバイス(100)。
  2. 前記指数は最高の指数である、請求項1に記載のコンピューティングデバイス(100)。
  3. 前記コントローラ(210)は、テーブルルックアップを介して前記指数を見出すように更に構成される、請求項1〜2のいずれか一項に記載のコンピューティングデバイス(100)。
  4. 前記コントローラ(210)は、場合により繰り返し除算によって前記指数を見出すように更に構成される、請求項1〜3のいずれか一項に記載のコンピューティングデバイス(100)。
  5. 前記コントローラ(210)は、最上位位置(msp)に基づいて前記指数を見出すように更に構成され、前記最上位位置(msp)は、前記数(X)の表現において非ゼロである最初の要素の位置である、請求項1〜4のいずれか一項に記載のコンピューティングデバイス(100)。
  6. 前記コントローラ(210)は、テーブルルックアップを介して前記最上位位置(msp)に基づいて前記指数を見出すように更に構成される、請求項5に記載のコンピューティングデバイス(100)。
  7. 前記コントローラ(210)は、前記表現の前記基数の前記最上位位置(msp)乗の現在の基数根を計算することによって、前記最上位位置(msp)に基づいて前記指数を見出すように更に構成される、請求項5に記載のコンピューティングデバイス(100)。
  8. 前記コントローラ(210)は、前記現在の基数の前記表現の前記基数根を計算し、これに前記最上位位置(msp)を掛けることによって前記最上位位置(msp)に基づいて前記指数を見出すように更に構成される、請求項5に記載のコンピューティングデバイス(100)。
  9. 前記コントローラ(210)は、前記数(X)を前記現在の基数の前記指数乗で除算することによって前記現在の基数に対する倍率を決定し、その後、前記倍率が掛けられた前記基数の前記指数乗だけ前記数(X)を低減させることによって残余数(Xres)を決定するように更に構成される、請求項1〜8のいずれか一項に記載のコンピューティングデバイス(100)。
  10. 前記コントローラ(210)は、前記数(X)から前記基数の前記指数乗を減算することによって前記数(X)を低減させるように更に構成される、請求項1〜9のいずれか一項に記載のコンピューティングデバイス(100)。
  11. 前記指数ベクトル(exp)の少なくとも2つの指数が、前記基数ベクトル(base)の同じ基数に対応する、請求項1〜10のいずれか一項に記載のコンピューティングデバイス(100)。
  12. 前記基数ベクトル(base)が重複の基数を含む、請求項1〜11のいずれか一項に記載のコンピューティングデバイス(100)。
  13. 前記コントローラ(210)は、前記指数ベクトル(exp)を再順序付けすることによって前記ファイル(410)を暗号化するように更に構成される、請求項1〜12のいずれか一項に記載のコンピューティングデバイス。
  14. 前記コントローラ(210)は、ファイル表現を数(X)として解釈することによって、前記ファイル(410)を前記数(X)に変換するように更に構成される、請求項1〜13のいずれか一項に記載のコンピューティングデバイス。
  15. ファイル(410)の少なくとも部分を数(X)に変換するステップと、
    前記数(X)を、少なくとも1つの指数を含む指数ベクトル(exp)に変換するステップであって、各指数は基数ベクトル(base)の基数に対応し、それにより、前記ファイル(410)は前記指数ベクトル(exp)で表される、ステップと、によって前記ファイル(410)を圧縮する方法であって、前記方法は、
    前記基数ベクトルの最初の基数を現在の基数となるように設定するステップと、
    前記現在の基数の指数を見出すステップと、
    前記指数ベクトル(exp)に前記指数を含めるステップと、
    前記基数の前記指数乗だけ前記数(X)を低減することによって残余数(Xres)を決定するステップと、を含み、
    前記現在の基数が前記基数ベクトル(base)の最後の基数でないならば、
    前記現在の基数は前記基数ベクトル(base)の次の基数となるように設定され、
    前記数(X)は前記残余数(Xres)となるように設定され、前記コントローラ(210)は新しい現在の基数の指数を見出し、
    前記現在の基数が前記基数ベクトル(base)の最後の基数であるならば、
    定数(K)が前記残余数(Xres)となるように設定され、前記指数ベクトル(exp)及び前記定数を含む表現が生成され、それにより、
    前記ファイル(410)の前記少なくとも部分が前記数(X)に変換される、
    方法。
  16. 請求項1〜15のいずれか一項に記載の圧縮されたファイル(410)を解凍するためのコンピューティングデバイス(100)であって、前記ファイル(410)は指数ベクトル(exp)によって表され、前記コンピューティングデバイスは、基数ベクトル(base)の各基数を指数ベクトル(exp)の対応する指数乗にし、その結果を数(X)に結合することによって前記数(X)を決定し、前記数(X)をファイル(410)に変換するように構成されるコントローラを備える、コンピューティングデバイス(100)。
  17. 請求項1〜15のいずれか一項に記載の圧縮されたファイル(410)を解凍する方法であって、基数ベクトル(base)の各基数を指数ベクトル(exp)の対応する指数乗にし、その結果を数(X)に結合することによって前記数(X)を決定するステップと、前記数(X)を前記ファイル(410)に変換するステップとによって、前記ファイル(410)は指数ベクトル(exp)によって表される、方法。
  18. プロセッサ上で実行されると、請求項15又は17に記載の方法を実行する命令(31)でエンコードされているコンピュータ可読記憶媒体(30)。
  19. メモリ(240)とコントローラ(210)とを備えるコンピューティングデバイス(100)であって、前記コントローラ(210)はファイル(410)を暗号化するように構成され、前記ファイルは、
    前記ファイル(410)の少なくとも部分を数(X)に変換することと、
    前記数(X)を、少なくとも1つの指数を含む指数ベクトル(exp)に変換することとによって圧縮され、各指数は基数ベクトル(base)の基数に対応し、それにより、前記ファイル(410)は前記指数ベクトル(exp)で表され、前記コントローラは、
    前記基数ベクトルの最初の基数を現在の基数となるように設定し、
    前記現在の基数の指数を見出し、
    前記指数ベクトル(exp)に前記指数を含め、
    前記基数の前記指数乗だけ前記数(X)を低減することによって残余数(Xres)を決定するように構成され、
    前記現在の基数が前記基数ベクトル(base)の最後の基数でないならば、
    前記現在の基数は前記基数ベクトル(base)の次の基数となるように設定され、
    前記数(X)は前記残余数(Xres)となるように設定され、前記コントローラ(210)は新しい現在の基数の指数を見出し、
    前記現在の基数が前記基数ベクトル(base)の最後の基数であるならば、
    定数(K)が前記残余数(Xres)となるように設定され、前記指数ベクトル(exp)及び前記定数を含む表現が生成され、それにより、
    前記ファイル(410)の前記少なくとも部分が前記数(X)に変換され、
    前記コントローラは、前記指数ベクトル(exp)を再順序付け、それにより、前記ファイル(410)の前記表現を暗号化するように更に構成される、
    コンピューティングデバイス(100)。
  20. 前記コントローラは、前記基数ベクトル(base)を再順序付けするように更に構成される、請求項19に記載のコンピューティングデバイス(100)。
  21. ファイル(410)を暗号化する方法であって、前記ファイルは、
    前記ファイル(410)の少なくとも部分を数(X)に変換するステップと、
    前記数(X)を、少なくとも1つの指数を含む指数ベクトル(exp)に変換するステップと、によって圧縮され、各指数は基数ベクトル(base)の基数に対応し、それにより、前記ファイル(410)は前記指数ベクトル(exp)で表され、前記コントローラは、
    前記基数ベクトルの最初の基数を現在の基数となるように設定し、
    前記現在の基数の指数を見出し、
    前記指数ベクトル(exp)に前記指数を含め、
    前記基数の前記指数乗だけ前記数(X)を低減することによって残余数(Xres)を決定するように構成され、
    前記現在の基数が前記基数ベクトル(base)の最後の基数でないならば、
    前記現在の基数は前記基数ベクトル(base)の次の基数となるように設定され、
    前記数(X)は前記残余数(Xres)となるように設定され、前記コントローラ(210)は新しい現在の基数の指数を見出し、
    前記現在の基数が前記基数ベクトル(base)の最後の基数であるならば、
    定数(K)が前記残余数(Xres)となるように設定され、前記指数ベクトル(exp)及び前記定数を含む表現が生成され、それにより、
    前記ファイル(410)の前記少なくとも部分が前記数(X)に変換され、
    そして、前記コントローラは、
    前記指数ベクトル(exp)を再順序付けし、それにより、前記ファイル(410)の前記表現を暗号化する、ように構成される、
    方法。
  22. プロセッサ上で実行されると、請求項21に記載の方法を実行する命令(31)でエンコードされているコンピュータ可読記憶媒体(30)。
JP2018091894A 2014-11-26 2018-05-11 改善されたファイルの圧縮及び暗号化 Expired - Fee Related JP6647340B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE1451431A SE538512C2 (sv) 2014-11-26 2014-11-26 Improved compression and encryption of a file
SE1451431-9 2014-11-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017528962A Division JP6374611B2 (ja) 2014-11-26 2015-11-25 改善されたファイルの圧縮及び暗号化

Publications (2)

Publication Number Publication Date
JP2018152887A true JP2018152887A (ja) 2018-09-27
JP6647340B2 JP6647340B2 (ja) 2020-02-14

Family

ID=56074772

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017528962A Expired - Fee Related JP6374611B2 (ja) 2014-11-26 2015-11-25 改善されたファイルの圧縮及び暗号化
JP2018091894A Expired - Fee Related JP6647340B2 (ja) 2014-11-26 2018-05-11 改善されたファイルの圧縮及び暗号化

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017528962A Expired - Fee Related JP6374611B2 (ja) 2014-11-26 2015-11-25 改善されたファイルの圧縮及び暗号化

Country Status (7)

Country Link
US (1) US10075183B2 (ja)
EP (1) EP3224957A4 (ja)
JP (2) JP6374611B2 (ja)
CN (1) CN107431491A (ja)
RU (1) RU2668708C1 (ja)
SE (1) SE538512C2 (ja)
WO (1) WO2016085393A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE544304C2 (en) 2015-04-17 2022-03-29 URAEUS Communication Systems AB Improved compression and encryption of a file
SE543293C2 (en) 2015-04-17 2020-11-17 Kelicomp Ab Improved compression of a file
US11461275B2 (en) * 2019-05-31 2022-10-04 Apple Inc. Compression techniques for vertices of graphic models
CN114328373A (zh) * 2020-09-29 2022-04-12 伊姆西Ip控股有限责任公司 管理文件系统的方法、电子设备和计算机程序产品

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867603A (en) * 1995-07-10 1999-02-02 Iterated Systems, Inc. Method for transmitting fractal transform data to support different compressor/decompressor designs
US6373986B1 (en) * 1998-04-08 2002-04-16 Ncr Corporation Compression of data transmission by use of prime exponents
WO2001050325A2 (en) 2000-01-03 2001-07-12 Efeckta Technologies Corporation Lossless data compression
KR100480787B1 (ko) 2001-11-27 2005-04-07 삼성전자주식회사 좌표 인터폴레이터의 키 값 데이터 부호화/복호화 방법 및 장치
US7006699B2 (en) * 2002-03-27 2006-02-28 Microsoft Corporation System and method for progressively transforming and coding digital data
CA2388358A1 (en) 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
KR100498457B1 (ko) * 2002-11-11 2005-07-01 삼성전자주식회사 메모리를 감소시키는 개선된 룩업 테이블 압축방법 및이를 이용하여 압축된 룩업 테이블을 가지는 비선형 함수발생장치 및 그 발생방법
WO2004098066A1 (ja) * 2003-04-28 2004-11-11 Nippon Telegraph And Telephone Corporation 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム
FR2867649A1 (fr) * 2003-12-10 2005-09-16 France Telecom Procede de codage multiple optimise
KR101190875B1 (ko) * 2004-01-30 2012-10-15 프랑스 뗄레콤 차원 벡터 및 가변 분해능 양자화
JP4037875B2 (ja) * 2005-02-24 2008-01-23 株式会社東芝 コンピュータグラフィックスデータ符号化装置、復号化装置、符号化方法、および、復号化方法
US20070094035A1 (en) * 2005-10-21 2007-04-26 Nokia Corporation Audio coding
US8972359B2 (en) * 2005-12-19 2015-03-03 Rockstar Consortium Us Lp Compact floating point delta encoding for complex data
US8711925B2 (en) * 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
KR20100074272A (ko) * 2007-10-14 2010-07-01 노키아 코포레이션 높은 코딩 효율을 갖는 적응 이미지 필터의 고정 소수점 구현
US7966318B2 (en) * 2007-11-20 2011-06-21 General Electric Company Compressed data storage to provide recent and summary data
FR2931963A1 (fr) 2008-06-02 2009-12-04 Centre Nat Rech Scient Procede de traitement de donnees numeriques
CN101783788B (zh) * 2009-01-21 2014-09-03 联想(北京)有限公司 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置
US8301803B2 (en) * 2009-10-23 2012-10-30 Samplify Systems, Inc. Block floating point compression of signal data
US8312026B2 (en) * 2009-12-22 2012-11-13 At&T Intellectual Property I, L.P. Compressing massive relational data
US8756262B2 (en) * 2011-03-01 2014-06-17 Splunk Inc. Approximate order statistics of real numbers in generic data
CN103458460B (zh) * 2012-05-31 2017-04-12 国际商业机器公司 对信号数据进行压缩和解压缩的方法和装置
US8737458B2 (en) * 2012-06-20 2014-05-27 MagnaCom Ltd. Highly-spectrally-efficient reception using orthogonal frequency division multiplexing
US20140105511A1 (en) * 2012-10-11 2014-04-17 Macaulay-Brown, Inc. Matched representation space method for numerically encoding data
CN103280221B (zh) * 2013-05-09 2015-07-29 北京大学 一种基于基追踪的音频无损压缩编码、解码方法及系统
US20140355683A1 (en) 2013-05-31 2014-12-04 Altera Corporation Data Encoding for Attenuating Image Encoders

Also Published As

Publication number Publication date
EP3224957A4 (en) 2018-07-11
WO2016085393A1 (en) 2016-06-02
US20170272095A1 (en) 2017-09-21
CN107431491A (zh) 2017-12-01
RU2668708C1 (ru) 2018-10-02
SE1451431A1 (sv) 2016-05-27
US10075183B2 (en) 2018-09-11
JP6647340B2 (ja) 2020-02-14
JP2018502493A (ja) 2018-01-25
JP6374611B2 (ja) 2018-08-15
EP3224957A1 (en) 2017-10-04
SE538512C2 (sv) 2016-08-30

Similar Documents

Publication Publication Date Title
JP6647340B2 (ja) 改善されたファイルの圧縮及び暗号化
JP6242074B2 (ja) 信号データの圧縮および圧縮解除のための方法および装置(信号データの圧縮および圧縮解除)
US8593307B2 (en) Methods of compressing data in storage device
US8775490B2 (en) Method and apparatus for compressive sensing with reduced compression complexity
WO2018019073A1 (zh) 编码方法、设备和装置
JP7123910B2 (ja) インデックスコーディング及びビットスケジューリングを備えた量子化器
US9934234B2 (en) Adaptive rate compression hash processor
US9806741B1 (en) Character conversion
WO2018157853A1 (zh) 用于确定Polar码编解码的方法、装置和设备
US10474637B2 (en) Systems, media and methods for virtualized data compression
JP2006129467A (ja) 整数データの無損失適応符号化・復号化
US10230391B2 (en) Compression and/or encryption of a file
US10505713B2 (en) Compression and/or encryption of a file
CN107077747B (zh) 远程显示的图形命令压缩
US10491241B1 (en) Data compression scheme utilizing a repetitive value within the data stream
Reddy et al. A novel approach of lossless image compression using hashing and Huffman coding
Das et al. Design an Algorithm for Data Compression using Pentaoctagesimal SNS
Mohamed Wireless Communication Systems: Compression and Decompression Algorithms
WO2014047606A2 (en) Techniques for data synchronization using compressive sensing
US20120262312A1 (en) Compression producing output exhibiting compression ratio that is at least equal to desired compression ratio

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180524

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190805

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: 20191217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200114

R150 Certificate of patent or registration of utility model

Ref document number: 6647340

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees