JP4028381B2 - 多数のパスを使用して情報を符号化し、単一のパスで復号する方法および装置 - Google Patents
多数のパスを使用して情報を符号化し、単一のパスで復号する方法および装置 Download PDFInfo
- Publication number
- JP4028381B2 JP4028381B2 JP2002546297A JP2002546297A JP4028381B2 JP 4028381 B2 JP4028381 B2 JP 4028381B2 JP 2002546297 A JP2002546297 A JP 2002546297A JP 2002546297 A JP2002546297 A JP 2002546297A JP 4028381 B2 JP4028381 B2 JP 4028381B2
- Authority
- JP
- Japan
- Prior art keywords
- threads
- compressed
- compression
- block
- blocks
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、情報を符号化および復号する方法および装置に関し、とくに多数のパスを使用して符号化し、単一のパスで復号する方法に関する。
【0002】
【従来の技術】
コンピュータおよび電子送信の普及により、デジタル情報の圧縮および圧縮解除方法が広く使用されている。
【0003】
システムの要求に影響を与える1つのパラメータは、圧縮が行われるのに必要な速度である。情報を実時間で処理するあるシステムにおいて、圧縮は実時間レートより速いレートで行われなければならない。圧縮がオフラインで行われることを可能にする別のシステムでは、圧縮手順はオフラインで行われることができる。
【0004】
別のパラメータは、必要とされる圧縮の量である。テキストファイルは小さいので、送信または記憶される前に圧縮は必要ないかもしれないが、画像ファイルは非常に大きくなる可能性が高いため、圧縮されていない画像の送信あるいはメモリまたはディスク中への記憶は著しく高価なものになる。
【0005】
さらに、圧縮された情報が圧縮解除されるレートは、使用される圧縮のタイプを決定するときに考慮されることのできる別のパラメータである。第2の圧縮解除全体を単一の静止画像に費やすことは問題ないかもしれないが、実時間レートで再生されることができるように一連の画像が圧縮解除されなければならない場合、圧縮解除が行われるレートは重要なファクタになる可能性が高い。
【0006】
通常の圧縮/圧縮解除システムは、種々の方法で上記およびその他のパラメータのバランスを保っている。たとえば、あるシステムにおいて使用される圧縮アルゴリズムは、圧縮に要する時間にかかわらずそのデジタル情報に関してなされる圧縮の重要度によって決定されることができる。ある別のシステムは種々の程度の圧縮を提供し、それに応じて異なった圧縮アルゴリズムを使用する。
【0007】
非常に多くの種々の圧縮/圧縮解除システムが存在しているにもかかわらず、もっと効率的に動作するこのようなシステムが継続的に必要とされている。効率をよくする通常の方法は、さらに効率の高い圧縮/圧縮解除アルゴリズムを開発することである。これには大きな利点があるが、使用可能なアルゴリズムの開発は高価で、危険を伴う可能性が高い。
【0008】
通常の圧縮/圧縮解除システムの一般的な特性として、デジタル情報は、それが圧縮のために受取られると、その受取られたシーケンスで処理される。したがって、最初に受取られたビットのスライスが圧縮された後でのみ、それに続いて受取られたスライスの圧縮が行われる。これは、単一パスで行われる圧縮とみなされることができ、それはデータの各スライスが単一の回数だけ処理され、また、それは一度処理されると、二度と処理されないためである。
【0009】
連続したスライスを処理するために多数のプロセッサが使用された場合でも、全体的な圧縮レートは最も圧縮の遅いスライスに制限され、また、本質的にシステムは依然として単一パスシステムである。したがって、特定のスライスが圧縮されることができなければ、圧縮動作は失敗する。
【0010】
したがって、デジタルデータの圧縮および圧縮されたデジタルデータの圧縮解除をもっと効率的でかつ無損失に行うことのできる方法および装置が必要とされている。
【0011】
【発明が解決しようとする課題】
本発明の目的は、デジタルデータの圧縮および圧縮されたデジタルデータの圧縮解除をもっと効率的かつ無損失に行うことである。
【0012】
本発明の別の目的は、デジタルデータの圧縮符号化に要するであろうと見込まれる期間( probable period of time )を適応可能に予測し、使用すべき圧縮符号化を決定するときにそれらの予測を使用することである。
【0013】
本発明の別の目的は、デジタルデータを多数のスレッドに分割し、所望する量の圧縮を達成するためにその多数のスレッドを独立的に処理することである。
【0014】
本発明の別の目的は、デジタルデータを多数のスレッドに分割し、所定の期間内に所望する量の圧縮を達成するためにその多数のスレッドを独立的に処理することである。
【0015】
本発明のさらに別の目的は、パスのシーケンスでデジタルデータを処理し、それによって結果的に得られる圧縮を改善することである。
【0016】
本発明のさらに別の目的は、以前圧縮されたデータを単一のパスで復号することである。
【0017】
【課題を解決するための手段】
上記の目的は、とくに単一でまたは組合せられて、デジタルデータが複数のブロックに分割され、その複数のブロックの1以上を各スレッドが含むように複数のスレッドが生成され、その後複数の圧縮されたスレッドを得るために各スレッドが処理され、各圧縮されたスレッドがデジタルデータの1以上の圧縮されたブロックを含んでいるデジタルデータの処理方法および装置が本発明によって達成される。
【0018】
この方法において、前のパスにおいてすでに圧縮エンジンによって圧縮されたデータを圧縮アルゴリズムが反復的に周期的な方式で圧縮するように、スレッドは圧縮エンジンを使用して処理される。各圧縮パスの間において、その時圧縮されたデータは前のパスにおいて設定されたメタデータを使用して処理され、それによって前のパスにおいて圧縮されたデータ中に存在する冗長が除去される。
【0019】
したがって、本発明は予め定められた圧縮アルゴリズムの多数のパスを使用してデジタルデータを圧縮して圧縮されたデジタルデータを獲得し、それに後続してその圧縮されたデジタルデータを、対応した圧縮解除アルゴリズムの単一のパスを使用して圧縮し、それによって無損失のプロセスでデジタルデータを獲得する。
【0020】
【発明の実施の形態】
本発明の上記およびその他の目的、特徴および利点は、本発明の非限定的で例示的な実施形態によって図面を参照として以下の詳細な説明に詳しく説明されている。なお、複数の図面にわたって同じ参照符号が本発明の同じ部分を表している。
最初に、とくに圧縮および圧縮解除に関する本発明の特徴を説明する。その後、本発明のその他の特徴を示す。
圧縮および圧縮解除に関して、本発明は最初に処理されているデジタルデータのファイルについて説明する。本発明の有効の特徴は、テキストファイルまたは画像ファイルのような前に圧縮されていないデータ、ならびにMPEGファイルまたはZIPファイルのような前に圧縮されたデータを処理し、潜在的に圧縮することができることである。別の特徴として、本発明は認識されたファイルタイプおよび認識されていないファイルタイプを処理することができる。Windows(商標名)オペレーティングシステム環境において、各ファイルは、その特定のファイルタイプを規定するヘッダ部分を有している。その結果、大抵の場合にファイルはユーザにより認識可能なフォーマットで処理される。MAC,Linuxおよびその他のような別のオペレーティングシステムに対しても同様である。当然ながら、種々のオペレーティングシステムは同じファイルタイプの多くを共用することが知られている。したがって、何百ものこのようなファイルタイプが存在しているが、そのほとんどはヘッダ部分に与えられた定義によって認識可能である。
【0021】
図1は、本発明を使用して処理されることのできる多くの異なったファイルタイプのファイルを含むデジタルデータ100の例示的な部分を示している。説明を容易にするために、ビットマップファイルB、実行可能ファイルC、およびジップファイルZの3つのファイルタイプしか示されていない。明らかになるように、ビットマップファイルBは圧縮されていないファイルであり、実行可能ファイルCはプログラムファイルであり、ジップファイルZは圧縮されたファイルである。デジタルデータ100のこの例示的な部分は、たとえば、半導体メモリ、ハードディスクドライブまたはCD等のある種のメモリ装置上に記憶される必要のあるデータであってもよく、ある種の伝送路に沿って送信される必要があるか、あるいは圧縮される、またはさらに圧縮されるある別の必要性があるかもしれないデータであることができる。例示的な部分は異なったファイルタイプを示しているが、本発明はまた単一のファイルタイプであるデータを処理することが可能であることが認識され、実際、それが以下に示されているようにこのようなデータを処理した場合、ある利点が明らかになるであろう。
【0022】
図2は、デジタルデータ100を処理するシステム200を示している。この例のために、デジタルデータはデジタル記憶装置210中に記憶され、このデジタルデータは圧縮する必要があると仮定される。この説明のために、デジタルデータ100が一度圧縮されると、それを圧縮されたデジタルデータ100’’’としてデジタル記憶装置210中に再度記憶するシステム200を説明する。その後、圧縮されたデジタルデータ100’の復号を説明する。しかしながら、一度圧縮されたデジタルデータ100’が得られると、それは後の利用のために種々の方法で記憶されるか、あるいは送信されることができることが認識される。以下、圧縮されたデジタルデータ100’が使用されることのできるある特定の方法を説明するが、記載される方法は何等本発明に制限を課すものではない。
【0023】
デジタル記憶装置210に加えて、図2は、インターフェース制御装置220および圧縮/圧縮解除エンジン230を含むシステム200を示している。システム200のこれらの部分はそれぞれ互いに関して説明されるが、各部分およびその各部分により行われる対応した機能は、固有の特徴を有していることが認識される。
【0024】
インターフェース制御装置220および圧縮/圧縮解除(C/D)エンジン230は、同じマイクロプロセッサを時分割して使用してもよく、本発明の好ましい実施形態においては、それぞれを行うために異なったプロセッサが使用され、C/Dエンジン230は、多数のスレッドを同時に処理することのできる機能を備えた1以上のプロセッサを使用して実施される。以下に説明するように、C/Dエンジン230をはるかに効率的に構成するために、さらに別のいくつかの異なった並列のプロセッサが使用されることができる。どちらの形態が使用さその他のコンピュータ言語で書かれた一連のプログラム命令として実施されるか、あるいはその代りにハードウェアで実施されることが好ましい。C5X,C6XおよびC7Xシリーズモデルで提供されているテキサス・インスツルメンツTMS320 DSPのようなDSPにおいてC/Dエンジン230を実施することがとくに有効であると認められており、このようなC5X,C6XおよびC7Xシリーズモデルは、それぞれ互いに関する種々の価格−性能トレードオフを提供するが、しかし、同じマイクロプロセッサによる実行を必要とされたアルゴリズムがインターフェース制御装置230を制御した場合に可能となる速度よりはるかに速い速度で圧縮および圧縮解除アルゴリズムを動作させることを実効的に可能にする。
【0025】
以下、図3を参照としてシステム200の動作によるデジタルデータ100の圧縮を説明する。最初に、ステップ310によって示されているように、ユーザは所望の圧縮率および臨界圧縮符号化時間を定める。これらはユーザアプリケーションに応じて変化するが、一般に圧縮率が高くなり、必要とされる符号化時間が短くなると、システム200はそれだけ一層、その所望の比率および時間が達成されることを確実にするように動作しなければならなくなることが認識されるであろう。また、ある比率および時間が所望されているが、システム200が実際にこれらの要求を満足させることができるという保証はないことを認識すべきである。これに関して、使用される特定のタイプの圧縮(および対応した圧縮解除)ルーチンは、本発明の焦点ではないことがさらに認識される。本発明の特徴は、むしろ、種々の圧縮ルーチンに基づいて要求された圧縮のレベルにデジタルデータ100の全体量を圧縮符号化するのに要すると見込まれる期間を、規定された圧縮ルーチンのセットが適応可能に予測し、以下に説明するように、使用すべき圧縮アルゴリズムを決定するときにこれらの予測を使用する能力である。したがって、これらの予測を行う開始時点は、所望された圧縮率および符号化時間をシステム200に示している。
【0026】
これらの圧縮率および符号化時間は、異なったタイプのデジタル情報に対して予測されることができる。以下の表1には、異なったタイプのファイルおよび圧縮ルーチンに対して、ファイルのサイズは一般に同じであるファイルでそのファイル中のデジタル情報に関して行われたパスの数に応じて、得られることのできる圧縮率の一例が示されている。典型的に、行われるパスが多くなるとそれだけ一層圧縮は増加する。もっとも、達成される圧縮量は、時間にわたって一般に指数関数的に、すなわち、少なくとも線形で減少するより速く少なくなる。LZWまたは他のもののような知られてはいるが、しかし、以下に説明されるメタデータ300の収集による強化はなされていない圧縮ルーチンを使用してデジタル情報が処理されることを仮定する。
【0027】
ユーザが所望の圧縮率および圧縮符号化時間を入力した後、ステップ320が続き、図2の制御インターフェース220は、符号化すべきデジタル情報100を識別する。このような情報を識別し、ある装置(メモリ210のような)にその情報を認識させて別の装置(インターフェース制御装置のような)に転送させる方法は、よく知られているので詳細には説明しない。制御インターフェース220により識別されると、デジタル情報100内の各ファイルと関連付けられたヘッダ110は、制御インターフェース220により認識され、そのヘッダ情報はファイルタイプおよびファイルサイズを検出するために使用される。
【0028】
ステップ330において、インターフェース制御装置は、この情報に基づいてデジタルデータ100を圧縮符号化するために準備する。
【0029】
図4のa乃至eは本発明によるデジタルデータに対する圧縮動作の効果を、圧縮動作中の種々の回数の段階についてグラフィックに示している。図4のaには、元のデジタルデータファイル100が、ある相対シミュラリティを有するファイルがグループ化された(この結果、示されている例では順序は同じである)順序で示されている。全体的レベルの一例として、画像、プログラムおよび圧縮されたファイルが別の画像、プログラムおよび圧縮されたファイルとそれぞれグループ化されることができる。しかしながら、各ファイルのタイプ(各ファイルのヘッダにおいて識別される)が互いに関してグループ化される多くの異なったタイプの画像ファイル、プログラムファイルおよび圧縮されたファイルが存在することが好ましい。したがって、図4のaの特定された例に示されているように、ビットマップBファイル、実行可能CファイルおよびジップZファイルが存在する。しかしながら、本発明は、システム200がすでに圧縮されたファイルを除く任意のタイプのファイルを処理し、そのファイルの圧縮を試みることが可能であり、この例においてとくに使用されるものに制限されないことを認識すべきである。
【0030】
これらのファイルのそれぞれに対応するデータは新しいメモリ位置に物理的に移動されないことが好ましい(理論的にこれは可能であるが)が、しかし順序をファイルタイプに基づいて個々のファイルに関連付けるポインタが生成されることが認識される。これはまた、データが移動されるものとして説明したほうが視覚的に理解が容易になるために以下の説明ではそのような形で説明される。
【0031】
ユーザはグループ化の細分性を決定することができる。そのようにして、上述のように各ファイルタイプに対するグループ化が行われることが好ましい。その代わり、画像、プログラムおよび圧縮されたファイルのような類似のファイルタイプに対する内容(sublect matter)のグループ化が行われることができる。1からN(ここでNは、ファイルタイプの最大数より小さく、1より大きい任意の整数である)までのグループ化を行うある別の内容(matter)が、たとえば、ファイルが圧縮されることのできる適応可能に予測された量を使用して(以下説明するように)構成されることが可能であり、その場合初期グループ1ファイルは最も大きく圧縮されると予測されたものであり、一方グループNファイルは最も小さく圧縮されると予測されたものである。その代り、このグループ化は、圧縮に必要となるであろう適応可能に予測された時間により決定されることができ、この場合にはグループ1ファイルは最も高速で圧縮されると予測されたものであり、一方グループNファイルは最も低速で圧縮されると予測されたものである。
【0032】
このグループ化は、類似した圧縮特性を有するものとして評価されたデータを含むと予測されたファイルが互いに関連付けられて圧縮されるように相対的に類似するように行われる。これはさらに効率的な圧縮を可能にすると共に、以下に説明する圧縮プロセスの後続する段階で、隠された冗長がもっと容易に明らかになることを可能にする。
【0033】
さらに、最初のグループ化のあと、ステップ340に示されているように、デジタルデータは、ファイルB1をヘッダ部分に分割することにより図4のbに示されているようなブロックに典型的にファイル単位で分割され、その後、部分B1a、B1b、B1cおよびB1dが行われる。この分割は、ファイルのタイプに対して、最も容易に圧縮されることのできるサイズに対して最適化されたサイズを各ブロックが有するように行われることが好ましい。ブロックのサイズは広範囲に変化し、典型的に0乃至65Kバイトの範囲である。
【0034】
ステップ340においてブロック化が行われると、それに続いてステップ350において、特定の圧縮ルーチンを使用して所望の全体的な圧縮率を達成するために、インターフェース制御装置220が各ブロックを処理し、デジタルデータ100を構成するファイルのそれぞれに対する各ブロックの圧縮を要求されると見込まれる期間を適応可能に予測する。類似するタイプの、以前に圧縮符号化されたファイルから得られた知識、およびヘッダ情報に基づいて、デジタルデータ100の全体量の各ブロックを、特定の圧縮ルーチンに基づいて要求される圧縮のレベルに圧縮符号化するのに要する時間と見込まれる期間の評価が行われ、この評価はその合計を予測するために累算される。
【0035】
特定のファイルタイプのブロックは全て、ヘッダからのファイルタイプに基づいて同じ相対ブロックサイズに対して同じであると評価される。これに関して、各ファイルタイプに対して特定の圧縮ルーチンを使用して評価された圧縮量およびその圧縮を達成するために要する評価された時間を示す表が使用されることができる。以下に示されている表1から明らかであるように、異なったファイルタイプのそれぞれに対して、圧縮量は、使用されるパスの数が多くなると一般に増加する。
【0036】
特定の圧縮ルーチンを使用した場合におけるそのタイプのデータが典型的に圧縮する程度の評価に基づいて、必要とされる圧縮の量の評価、その圧縮レベルに達すると評価されたパスの数、そのレベルの圧縮を行うために必要であると評価された時間が獲得されることができる。したがって、デジタル情報100を全て圧縮するために、異なった圧縮ルーチンおよび、以下説明するように同じ圧縮ルーチンを使用して行われるのと同じ数のパスが使用されることができる。インターフェース制御装置220は、所望の圧縮全体を達成しようと試みるために異なったブロックのそれぞれに対する使用を示唆するものを決定することができる。たとえば、典型的に、所定の圧縮ルーチン(上記の表1に示されている)を使用して第1のパスの後に少しだけ圧縮する図1のZ1のファイルに対して、インターフェース制御装置220は、C/DエンジンがZ1ファイルに対するブロックに関してパスを1回だけ行うことを示唆することができるが、図1におけるB1およびB2のような別のファイルに対しては、それらのブロックに対して所望の圧縮が得られるように示唆された圧縮ルーチンに適した、2回および3回のパスをそれぞれ行うことを示唆し、デジタル情報100の全体量に対して所望される圧縮に所望される期間で到達しようと試みることができる。
【0037】
インターフェース制御装置220は、以下さらに詳細に説明するように、これらの最初の予測を行って、これらの最初の予測に関連した制御信号およびメタデータを、処理されるべきデータと共にC/Dエンジン230に送信し、また、C/Dエンジン230は特定のブロックを処理しているときに最初にこれらの制御信号およびメタデータを使用するが、C/Dエンジン230は、以下において詳細に説明するように、その制御信号およびメタデータにより示唆された動作からはずれて独立的に決定することが可能であることもまた認識される。
【0038】
制御信号およびメタデータの生成に関して、異なったデータを圧縮するために異なったスレッドを使用する考えに関する本発明の別の特徴を以下に説明する。異なったスレッドは、ファイル内の各ブロックに対して必要とされたときに決定されてもよいし、あるいはいくつかのファイルの全てが同じスレッドを使用してもよい。この決定がどのようにして行われるかを以下に説明する。新しいスレッドを構成するか否かの考慮に関して、再び、インターフェース制御装置220は特定の圧縮ルーチンを使用して各ブロックを圧縮するのに必要とされる期待期間について予測していることが認識される。これを見る別の方法は、インターフェース制御装置220が、その圧縮ルーチンに対して各ブロックに関してルーチンが行われた符号化パスの数を評価することである。したがって、あるブロックは圧縮が困難であろうとインターフェース制御装置220が予測した場合、別のスレッドが識別されることができ、そのスレッドに関してC/Dエンジン230が圧縮ルーチン動作を始めるのに必要な情報が与えられているならば、そのスレッドはそれと固有のメタデータおよび制御信号を関連付けている。このようにして、独立的に圧縮されることをインターフェース制御装置220により決定された各ブロックに対して、別のスレッドが生成される。
【0039】
本発明は必要とされた場合には、各ブロックに関して独立的に動作することができるため、多くの例においてそれは単一のスレッドにより多数のブロックに関して動作するが、図3のステップ360によって示されているように、インターフェース制御装置は、新しいスレッドを生成すべき時期または多くのブロックに対して同じスレッドを使用すべき時期を決定することが可能である必要がある。たとえば、データのブロックを圧縮するために必要とされる時間があるしきい値より大きい場合、そのブロックに対して新しいスレッドがインターフェース制御装置220によって生成される。そうでない場合には、インターフェース制御装置220により同じスレッドを介して圧縮されていることに関してブロックのストリングがタグ付けされるように、別のブロックが前のブロックに追加される。
【0040】
上記を考慮して、インターフェース制御装置220は、各スレッドに対する実行を示唆した圧縮ルーチンを示す制御信号をC/Dエンジン230に発生することが認識される。インターフェース制御装置また、データが適切に転送されることを保証するために別のルーチンハンドシェーキング信号を発生するが、これらの説明は不要である。以下、発生されたある診断制御信号について適宜説明する。
【0041】
さらに、発生されたメタデータは、圧縮ルーチンの特性と、および処理されているストリームのタイプと関連付けられることのできる重要なパターンとを提供する。図1のbにはメタデータの編成が示されている。圧縮ルーチンのメタデータ特性に関して、以下の3つが重要である:
1.上述したように所望の圧縮量を達成するために行われる必要があるであろうとインターフェース制御装置により予測されたパスの数をC/Dエンジンに示す要求パス変数;
2.C/Dエンジンに送られたときにはブランクであるが、C/Dエンジンがインターフェース制御装置にパスし、その結果それがその予測テーブルを更新することができる完了パス変数;
3.メタデータ内において後続するパターンの数を示す変数内パターン。典型的には、最初はパターンがない。圧縮ルーチンにより処理されたストリームの第1のパスの後、パターンがデータ内に見出されるようになり、以下さらに詳細に説明するように、それが使用される。これらのパターンはメタデータ内にセーブされる。
【0042】
上記説明により、スレッド決定ステップ360が完了すると、ステップ370が始まり、適切な制御信号、メタデータおよびデータのスレッドがC/Dエンジン230に転送され、その結果所定のスレッド内の各ブロックに対する圧縮が行われることができる。
【0043】
図3Bは、特定のスレッドに関して圧縮ルーチンを行うというリクエストをC/Dエンジン230がインターフェース制御装置220から受取ったときに行う種々のステップを示している。ステップ410によって示されているように、C/Dエンジン230は初期制御信号、メタデータおよび対応したデータブロックをインターフェース制御装置220から受取って、関連したメタデータおよびデータブロックを図2に示されているバッファ管理装置232のメモリ中に記憶する。バッファ管理装置232はまた、以下に説明するように、中間動作結果だけでなく、最終的にはインターフェース制御装置に戻される最終的な圧縮結果もまた記憶するので、それはデータ管理装置として動作する。
【0044】
続いて、ステップ420に示されているように、C/Dエンジン230と関連したプロセッサは圧縮ルーチン制御信号を使用して適切な圧縮ルーチンを呼出し、その圧縮ルーチンの第1のパスの実行を開始する。
【0045】
この第1のパスを理解し易くするために、以下において図2の圧縮/圧縮解除ルーチンブロック234に示されている圧縮ルーチンを説明する。圧縮/圧縮解除ルーチンブロック234は、各ファイルタイプに対して圧縮/圧縮解除ルーチンと、好ましくはファイルタイプに対して冗長な圧縮/圧縮解除ルーチンと、および利用できるようになることのできる別の圧縮/圧縮解除ルーチンとが存在するように、多数の異なった圧縮およびそれらの対応した圧縮解除ルーチンを含んでいるであろう。別の圧縮/圧縮解除ルーチンが使用可能ではあるが、各圧縮/圧縮解除ルーチンは典型的にC++のような適合可能なプログラミング言語で書かれていることが好ましい圧縮/圧縮解除アルゴリズムと、知られているように、これと関連付けられた圧縮/圧縮データのテーブルとから構成されている。上述したように、使用される特定の圧縮/圧縮解除ルーチンは、本発明の技術的範囲内のものとは考えられておらず、したがってこのようなルーチンの詳細な説明は不要である。
【0046】
第1のパスの後、ある圧縮ルーチンを使用してブロックが符号化されると、符号化された情報に完全に冗長なパターンは含まれないだろう。したがって、通常のシステムでは圧縮はこの時点で完了し、もしさらに圧縮する必要があるならば、別の圧縮ルーチンにより圧縮プロセスを再度スタートする必要がある。しかしながら、本発明においては、ここに記載されているように、すでに圧縮されたデータの部分的に冗長なパターンが得られ、その後メタデータのパターンとして記憶され、それ故、以下さらに詳細に説明するように、前に圧縮されたブロックの2度目のパスでの再圧縮の前に、これらのパターンを使用して圧縮されたシーケンスを変更することができる。
【0047】
圧縮ルーチン420の開始中、圧縮ルーチンに要する時間が追跡され、バッファ管理装置232の診断メモリ部分の中に記憶される。ルーチンの実行が成功するのに要した時間がある予め定められた期間より長い場合、ステップ422により示されているように警報が設定され、それによって同じ圧縮ルーチンと関連付けられた圧縮データの異なったテーブルのいずれかを使用することか、または異なった圧縮ルーチンを一緒に使用することをC/Eエンジンに示す。この警報はまた、ルーチンによる実行が所望の期間内に成功したが、達成された圧縮が、たとえば、予測されたものより5乃至10%大きい等、予測された範囲から数パーセントだけ外れている場合に設定されることができる。
【0048】
圧縮に要する時間が長くなるか、あるいは圧縮が十分されない理由は多い。たとえば、ヘッダファイルタイプは間違ったラベルを付けられる可能性があるため、それに関連したデータが予想されたものとは異なった特性を示すか、あるいはブロック内のデータは、単に予期されたものとは異なったデータに基づいて異なった特性を示す可能性がある。
【0049】
ステップ422によって示されているように、別の圧縮ルーチンが必要であることが決定された場合、ステップ424に進んで、圧縮ルーチンは処理されているブロック内のビットのパターンの評価に基づいて変更される。異なったファイルタイプは典型的に異なったパターンを有しているため、評価においては、あるタイプのテーブル等の中にパターンが記憶されることのできる種々のファイルタイプに関連付けられた異なったパターンの前の知識を有していることに基づいてパターンが認識されることができる。
【0050】
ステップ422における最初のブロックまたは複数のブロックに関する圧縮ルーチンの第1のパスの完了後、中間的なものであってもよい結果が得られ、バッファ管理装置232中に記憶される。図4のcには、これらの中間的な結果が示されており、これは、図4のaに示されているビットマップファイルB1の圧縮の一例を示し、このビットマップファイルB1は、図4のbに示されているように、4つのブロックB1a,B1b,B1cおよびB1dに上述のように分割されたものである。このファイル中の全てのブロックは、上述のようにインターフェース制御装置220により単一のスレッドから形成されたと仮定すると、圧縮ルーチンによる第1のパスの終りに結果的に得られる出力は4つの対応した圧縮されたブロックB1ae,B1be,B1ceおよびB1deとなる。
【0051】
しかしながら、ステップ420aによって示されているように、この第1のパス中に、圧縮ルーチンは、説明された例の中の4つのブロックB1a,B1b,B1cおよびB1dのような処理されているブロック内において見出されたパターンのコピーをバッファ管理装置232のメモリ中に記憶する。パターンのビット長は変化する可能性があるが、3乃至8ビットのビット長を使用することが好ましく、6ビット長の使用が最も好ましい。これは、それより短い長さのパターンではそれ以上の圧縮が行われず、また、それより長いビット長は結果的に冗長または部分的冗長を有するパターンが少ないからである。ファイルタイプが記憶されるパターンのタイプを決定するために使用されることができることもまた認識すべきである。たとえば、圧縮されていない画像ファイルに対して、多くの冗長が期待されることができる場合、記憶されるパターンの数は典型的に、すでに圧縮されたファイルからのパターンを記憶する場合より少ない。これは、すでに圧縮されたファイル中の冗長なパターンの数がすでに最小だからである。
【0052】
パターンが検出された時点で、それは図1のbに示されているようなメタデータ中に記憶され、各パターンの追加を反映するように特性フィールド内パターンが更新される。ステップ420aにおいて、圧縮ルーチンはあるパターンを見出し、その後それが類似していることに基づいてそのパターンをコピーする。パターンが類似しているかどうかは、そのタイプのファイル中のパターンの特性、パターンのランダム度、および前に処理された別のブロックに対して記憶されている別のパターンとの比較に基づくことができる。
【0053】
上述の基準を適用した場合、第1のパスの時点では、あるものが典型的に部分的に冗長である多くの異なったパターンが潜在的に存在しているため、以下に説明するように、後続するパスに対してこのメタデータが使用される。
【0054】
このパスの終わりに、圧縮ルーチンはいくつかの動作を行う。また、ステップ425によって示されているように、各スレッドと関連したメタデータは、そのメタデータが生成されたブロックに関連付けられる。
【0055】
さらに、ステップ426に示されているように、C/Dエンジンは、行われる必要のある圧縮が行われたか否かを決定する。この決定は、異なったスレッドそれぞれの圧縮を追跡し、さらに圧縮する必要があることを決定することにより行われる。これに関して、異なったスレッドは異なった時間に始まり、終るため、これは、各スレッドの完了により発生する進行中のプロセスであることが認識される。必要とされる所望の全圧縮量が得られると、別のスレッドのそれぞれに対して進行している圧縮プロセスのパスは完了されることができ、あるいは現在のパスが終了され、ステップ427で示されているように、完了したパスの結果が使用されることができる。
【0056】
ステップ428により示されるように、圧縮されたブロックの圧縮の続行が決定された場合、その圧縮ルーチンは所定のスレッド内の圧縮されたブロックを再検討して、符号化されたブロックの間にある類似性を決定し、その後ステップ430において、類似したパターンを含むブロックが隣合うようにブロックを再度順序付ける。類似性が存在するか否かを決定するステップ428において、圧縮ルーチンはいくつかの比較機能(加算、減算、乗算、除算、XOR、ANDおよびこのような他の機能、)を使用して、メタデータ中に記憶されたパターンの部分的な重複があるか否かを決定することが好ましい。同じまたは類似したパターンを見出したとき、等しいか、それ以上であるか、あるいはそれ以下であるかのGETのツリートラバーサル(tree traversal)動作が使用される。
【0057】
これに関して、メタデータ中に記憶された各パターンはツリー構造であるため、典型的に、ツリー構造が種々のツリートラバーサル動作を使用して容易にトラバースされることを可能にする2進数である対応した番号によって、パターンは全て識別されることが可能であり、部分的な重複を有するパターンは識別され、その後比較機能により処理されることができる。したがって、符号化されたブロック内の1つのパターンが“0101”である場合、圧縮ルーチンの第1のパスの後、このような冗長は除去されているため、この同じパターンは存在しない。しかしながら、パターン“0100”は存在している可能性があり、このパターンはパターン“0101”と1つのビットだけ異なっていることが明らかである。したがって、ステップ428において、これらのパターンが関連付けられていることが決定され、したがってステップ430において、パターン“0101”から同数のビット長だけオフセットされたものとしてパターン“0100”が存在すること、およびその代りパターン“0100”はパターン“0101”マイナス“1”で表されることが可能であることをポインタで示すことによりパターンを再度順序付けることが可能にされる。したがって、符号化されたストリームは、パターン中のこの部分的な重複を反映してそれを除去するように変更される。さらに、これらの動作がストリーム内の前に圧縮されたブロックの全てに対して行われると、圧縮ルーチンによって行われる後続の圧縮パスのためにそのサブセットまたはそのスーパーセットが再び圧縮ルーチンに送られ、さらにまた圧縮されるか、これは、再度圧縮されたストリームのブロック内のパターンと前に第1のパスの圧縮から結果的に得られたパターンとは今や異なったものになっているためである。
【0058】
パス間において、使用される比較動作のタイプは、適応可能な方法で変更されることができることもまた認識されるべきである。とくに、比較動作の適応可能な決定は、代表的なファイルタイプパターンに比較された圧縮されたブロックのパターンに基づいて行われ、この代表的なファイルタイプのパターンもまた上述のように、システム上のテーブル中に記憶されることができる。
【0059】
与えられた例で説明を続けると、ブロックB1aeとB1ceが類似性を有し、ブロックB1beとB1deが類似性を有していると決定され、図4のdに示されているように、そのようにしてブロックを再度順序付けることができる。
【0060】
決定ステップおよび再順序付けステップを行ったとき、第1のパスで生成された各スレッドは対応した圧縮されたブロックおよび対応した診断信号から除去され、上述したように、インターフェース制御装置220に送られ、前に生成された各スレッドが完了されていることを示すであろう。圧縮の第2回以降のパスのこの部分において、使用されるメタデータは前のパスのスレッド内の各ブロックに対して生成されたメタデータに対応していることもまた認識される。したがって、示されている例において、B1ae、B1be、B1ceおよびB1deのスレッドからのメタデータは同じスレッドからのものであったため、B1ae/B1ceスレッドおよびブロックB1be/B1deスレッドに関して同じメタデータが使用される。しかしながら、ブロックが、以前に2つの別々のスレッドであったものを組合せたものだった場合、2つの別々のスレッドのそれぞれからのメタデータが組合せられ、この動作において使用されることが認識される。しかしながら、この後者の実施はすでに複雑なシステムに複雑な別の層を付け加え、したがって、その実施はこの時点では好ましくない。
【0061】
再度順序付けられると、圧縮エンジンは、再度順序付けられたデータの特性に基づいてステップ432で実施すべき新しいスレッドの数を決定し、信号がインターフェース制御装置に送られ、新しく生成された各スレッドを識別する。したがって、上述された例において、ブロックB1aeおよびB1ceは類似性を有し、ブロックB1beおよびB1deは類似性を有していることが決定されたので、圧縮ルーチンはこれらのそれぞれを別々のスレッドとして実施することを決定してもよい。したがって、将来別々のスレッドとして圧縮されることに備えて、これら2つのスレッドはそれぞれ独立して処理されることが好ましい。
【0062】
上述のメタデータの使用および再順序付けによりさらに操作された以前圧縮されたデータに対する圧縮動作は、ステップ420の説明およびその後に説明したように続行する。しかしながら、所望される圧縮量にまだ達していないために圧縮が続行される場合、パスが繰り返された後にそれ以上圧縮が行われなければ、このプロセスをステップ434として示されている手動無効で終了させることが可能であることを認識すべきである。この終了はまた自動的に行われることが可能であり、すなわち、ある整数であるN回のパスが繰り返された後に所望の圧縮が得られない場合はプロセスが終了する。
【0063】
第2のパスの結果、圧縮がさらに行われた各スレッドに対して、上述の第1のパスの後に行われたステップが再び繰り返され、その後プロセスは、それが完了するか、所望の圧縮への完了が不可能であることが決定されるか、あるいは時間切れになるまで繰返えされて続行される(本質的に所望の圧縮の達成が不可能だった場合と同じである)。
【0064】
以下図5A乃至5Eの説明を参照として明らかになるように、第3、第4および第5のパスもまた可能であり、各後続するパスにしたがって、部分的に重複しているメタデータが連続的に小さくなり、それに応じて、プロセスに終りに、残っているメタデータは保存されることが好ましい。
【0065】
1つの圧縮動作から得られたメタデータ、とくに3、4、5のパスが行われた後に存在しているメタデータはその状態で保存され、その後別の圧縮動作においてメタデータとして使用され、全く異なる圧縮システムによってでも使用され、また、その別の圧縮動作に対しては、それは第1のパスの圧縮動作中に使用された情報として含まれることが可能であることが認識される。これらのパスの後に存在するメタデータ中のパターンは、そうでなければ容易に明らかにならない捕えがたい冗長または部分的冗長を示すために、そうでなければ利用不可能であるメタデータの存在のために別の圧縮動作の速度が増加する。
【0066】
データのストリームの成功的な圧縮ルーチンの終りにおいて、一連の圧縮されたブロックが結果的に得られ、その後それらはバッファ管理装置232によりインターフェース制御装置220に送り返される。
【0067】
以下図5A乃至5Eに関してさらに詳細に説明されるように、上述したプロセスにおいて、1、2、10回以上等の、ある回数のパスの後、データはある量だけ圧縮され、その後、本発明にしたがってさらに圧縮することは不可能になるであろう。したがって、このような時点で、データは可能な限り圧縮されたと考えられることができ、その後送信され、記憶され、あるいは、そうでなければ、圧縮された形態で所望に応じて使用されることができる。しかしながら、ある時点において、圧縮解除が行われるであろう。図5A乃至5Eから明らかになるように、本発明によると、圧縮解除動作で行われる動作は圧縮中に行われた動作を反映するため、圧縮解除動作は相反動作である。したがって、圧縮解除アルゴリズムは圧縮アルゴリズムの逆のものであり、上述のように行われるその他の動作は同様に置換されることができる。しかしながら、圧縮動作と圧縮解除動作の間の1つの顕著な違いは、圧縮動作は圧縮するのにおそらく多数のパスで行われる可能性が高いが、圧縮解除動作は常に単一のパスでしか行われないことである。これは、圧縮動作の各パスが上述のように符号化されたデータを処理した同じ圧縮アルゴリズムを使用して動作し、元のデータストリームの全体が圧縮されたデータから最終的に導出されることができるためである。対照的に多くのパスを使用して圧縮する通常の圧縮技術は別のパスを行うときに、圧縮されたデータではなくソースデータに戻って、これを使用するため、このような技術では多数のパスが圧縮解除を行う必要がある。
【0068】
以下、簡単化されたサンプルデータセットを使用するサンプル動作を図5A乃至5Eを参照として説明して、多数パス圧縮および圧縮解除能力の両者を例示する。この例において、上方のボックス中のアルファベットはデータ要素のセットとして使用され、“A”は“B”の値より1だけ小さい値を有していることを認識すべきである。これはさらに簡潔な説明が与えられることを可能にするために簡単化されたものであるが、しかし本発明が処理し、圧縮および圧縮解除を行うことのできるデータのタイプを制限するものとしてこれを解釈してはならない。さらに、メタデータに基づくツリートラバーサルおよび比較機能動作を説明するときに示されるようなデータは圧縮エンジンにより圧縮されているとみなされ、圧縮エンジンは、たとえば、パターンAAAを圧縮されていない形態のまま残しておかないことまで明らかになるであろう。
【0069】
示されているように、図5Aは、図1のbを参照として上述した情報を有し、以前決定されたメタデータマーカーをすでに有している単一のファイルからのデジタルデータと、および上述したように第1のパス圧縮中に使用可能な異なった圧縮事象からの可能性のある実際のメタデータの一例を示している。しかしながら、以下の例に対して、第1のパスの前はメタデータマーカー部分中にメタデータパターンが1つも存在しないことが仮定されている。
【0070】
符号化されたブロックA乃至Eはそれぞれ、図5Aの“0パス後”の部分により示されているようなブロック自身に細分されることができ、ブロックAは上述したようにインターフェース制御装置220によって最初にブロックA1,A2およびA3に細分される。示されているように、ブロックA1乃至E3は単一のスレッド中でグループ化されている。圧縮エンジン232による第1のパス圧縮の完了およびその第1のパス圧縮に関連したスレッドの除去後、ファイル構造は図5Aの“1パス後”の部分に示されているものとなる。その後、符号化されたデータは上述のように第2のパスの開始前に処理される。示されているように、ブロックA1,A2,B1,B2・・・・はラベルによって同じであると識別されるが、しかし、それらはさらに圧縮されていることを認識すべきである。さらに、ブロックB1は、図面下方に配置されブロックB1と関連付けられている楕円の中にA3B1によって示されているように以前ブロックA3およびB1であったものを組合せることにより形成されている。
【0071】
図5Bは、各パスで圧縮と関連付けられたメタデータを示している。上述したように、第1のパスにおいてはメタデータパターンが存在しないことが仮定されていたので、第1のパスの前からのメタデータパターンは示されていない。“1パス後”において、示されているメタデータはメタデータパターンAAA,BBB,CCC・・・・である。したがって、この例におけるパターン長は3であり、上述されたそれより大きい数ではないことが認識される。これらのメタデータは、図5Dに示されている0パス後のデータのブロックAの第1のサブブロックA1において見出されたパターンに対応している。AAA,BBBおよびCCCはそれぞれ互いに類似していないので、それぞれが別個のメタデータパターンとして識別されている。
【0072】
図5Dを参照とすると、第1および第2の符号化されたブロックAおよびBが第1のパスの後に、GET=トラバーサル機能およびan=比較機能により動作された後に、第1および第2の符号化されたデータ構造が図示されているように発生する。これらの例では簡単化のために比較機能に等しいものだけ使用されているため、この比較機能は識別子により示されていないが、しかし、実際には使用されている比較機能は処理されているパターンに関連した別のデータ内に記憶されていなければならないことが認められる。示されているように、符号化されたデータサブブロックA1は単独でおかれており、これは、別のパターンのどれかに等しいパターンがないためである。しかしながら、サブブロックA2においてAAAパターンは、図5Cに示されているようにブロック識別子、ブロックカウンタ、動作およびデータオフセットである種々の識別子により(a20 7)として表される。すなわち、この例において、“a”はそのデータがブロックAからのものであったことを表し、“2”はそのデータが第2のサブブロックからのものであったことを表し、“0”はGet=トラバーサル動作を表し、“7”はそのパターンに対する第1の文字のビット位置を表している。その後示されている他のパターンは、これらの類似性を示すためのこの同じ命名法により例示される。
【0073】
図5Eは、GET=ツリートラバーサル動作を使用する1パス後からGET>=ツリートラバーサル動作が使用される2パス後へのトランジションからのデータを示している。示されているように、BBBはAAAとは1だけ異なっているので、BBBパターンは(a11 4)になり、“a”はデータがブロックAからのものであったことを表し、“1”はデータが第1のサブブロックAからのものであったことを表し、“1”はGet>=トラバーサル動作を表し、“4”はそのパターンに対する第4の文字のビット位置を表している。その後に示されている他のパターンは、これらの類似性を示すためのこの同じ命名法により例示される。
【0074】
再び図5Bを参照とすると、パス2後に対するメタデータが変化していることが認識される。これはこのパスの後、残っている利用可能なメタデータパターンがAAA,GGG,MMM,HUU,KHK,およびXYZであるからである。しかしながら、AAAは、それが再び見出されるであろうという意味においてメタデータではないが、しかしそれは別のパターンが関連しているパターンであるため、それが保持されていることを認識すべきである。
【0075】
上述の圧縮/圧縮解除システムの特定の適用は多様である。本発明の技術的範囲を理解するために、以下にいくつかの例を示す。
1.デジタルムービーの圧縮/圧縮解除(圧縮時間は気にしなくてよいが、圧縮解除時間は取り扱いに非常に注意を要する)。
【0076】
2.ディスク装置上の種々のファイルの圧縮/圧縮解除(圧縮の量の取り扱いに非常に注意を要し、圧縮および圧縮解除時間にも注意する必要がある)。
【0077】
3.インターネット上での配信用の実時間ビデオフィードの圧縮/圧縮解除(圧縮時間および圧縮解除時間の取り扱いに非常に注意を要する)。
【0078】
この明細書では特定の実施形態を参照として本発明を説明してきたが、上記の開示において修正、種々の変更および置換は自由に行われるものである。たとえば、本発明は簡明にするために別個のコンポーネントである(これは好ましい)インターフェース制御装置およびC/Dエンジンに関して記載されているが、この明細書に記載されている動作および機能は、依然として本発明の技術的範囲内においてそれらの等価なものを単一のプロセッサまたはもっと多くのプロセッサが行うように適合されることが可能である。したがって、本発明のいくつかの特徴は別の特徴を対応的に使用せずに使用され、また、添付されている請求の範囲に記載されている本発明の技術的範囲を逸脱することなく、別の修正を行うことが可能であることが認識されるであろう。
【図面の簡単な説明】
【図1】 本発明による処理されることのできる異なったファイルタイプを含むデジタルデータの例示的な部分とメタデータとをそれぞれ示す概略図。
【図2】 本発明による圧縮/圧縮解除システムのブロック図。
【図3A】 本発明による圧縮中の最初のインターフェース制御装置の動作を示すフローチャート。
【図3B】 本発明による圧縮中の圧縮エンジン動作を示すフローチャート。
【図4】 本発明によるデジタルデータに対する圧縮動作の、圧縮動作中の種々の回数での効果を示す概略図。
【図5A】 圧縮動作中の種々の回数におけるデジタルデータの圧縮中における圧縮されたデータおよびメタデータの生成を示す概略図。
【図5B】 圧縮動作中の種々の回数におけるデジタルデータの圧縮中における圧縮されたデータおよびメタデータの生成を示す概略図。
【図5C】 圧縮動作中の種々の回数におけるデジタルデータの圧縮中における圧縮されたデータおよびメタデータの生成を示す概略図。
【図5D】 圧縮動作中の種々の回数におけるデジタルデータの圧縮中における圧縮されたデータおよびメタデータの生成を示す概略図。
【図5E】 圧縮動作中の種々の回数におけるデジタルデータの圧縮中における圧縮されたデータおよびメタデータの生成を示す概略図。
Claims (35)
- デジタルデータを処理する方法であって、この方法は
デジタルデータを複数のブロックに分割し、
各第1のスレッドが複数のブロックの少なくとも1つを含むように、複数の第1のスレッドを生成し、そして
複数の圧縮された第1のスレッドを得るために複数の第1のスレッドのそれぞれを処理するステップを含み、各圧縮された第1のスレッドはデジタルデータの少なくとも1つの圧縮されたブロックを含み、
圧縮された第1のスレッドのそれぞれを除去し及び圧縮された第1のブロックを保存するために圧縮された第1のスレッドのそれぞれを処理し、
各第2のスレッドが複数の圧縮された第1のブロックの少なくとも1つを含むように、複数の第2のスレッドを生成し、そして
複数の圧縮された第2のスレッドを得るために複数の第2のスレッドのそれぞれを処理し、各圧縮された第2のスレッドはデジタルデータの少なくとも1つの圧縮された第2のブロックを含む
ことを特徴とする方法。 - 第1のスレッドのそれぞれを処理するステップは、無損失圧縮を行う請求項1記載の方法。
- 第1のスレッドのそれぞれを処理するステップは、複数の第1のスレッドのそれぞれを独立に処理する請求項1記載の方法。
- 第1のスレッドの少なくともある定まったものは、並列に独立に処理される請求項1記載の方法。
- デジタル的に圧縮されたデータを得るために、複数の圧縮された第1のスレッドのそれぞれ内の圧縮されたブロックを組合せることをさらに含んでいる請求項1記載の方法。
- 複数の第1のスレッドを生成するステップは、複数の第1のスレッドのそれぞれの中のブロックがある共通した圧縮特性を共用するように、デジタルデータの複数のブロックのそれぞれを複数の第1のスレッドの1つと関連付けるステップを含んでいる請求項1記載の方法。
- 複数の第1のスレッドのそれぞれを生成するステップは、第1のスレッドのそれぞれが類似のデータタイプを有するブロックを含むように、複数のブロックのそれぞれのデータタイプを使用する請求項1記載の方法。
- 各ブロックに対する推定された圧縮時間および推定された圧縮量を予測するステップをさらに含んでいる請求項1記載の方法。
- データを分割するステップは、各ブロックのデータタイプを考慮して複数のブロックのそれぞれのサイズを決定するステップを含んでいる請求項1記載の方法。
- 第2のスレッドのそれぞれを処理するステップは、複数の第2のスレッドのそれぞれを独立に処理する請求項1記載の方法。
- 第2のスレッドの少なくともある定まったものは、並列に独立に処理される請求項1記載の方法。
- 複数の第2のスレッドのそれぞれを処理するステップにおいて、各ブロックを処理するために使用された同じ圧縮アルゴリズムはまた、対応した圧縮されたブロックを処理するために使用される請求項1記載の方法。
- デジタル的に圧縮されたデータを得るために、複数の圧縮された第2のスレッドのそれぞれ内の圧縮されたブロックを組合せることをさらに含んでいる請求項1記載の方法。
- 複数の第2のスレッドを生成するステップは、複数の第2のスレッドのそれぞれの中の圧縮された第1のブロックがある共通した圧縮特性を共用するように、複数の圧縮された第1のブロックのそれぞれを複数の第2のスレッドの1つと関連付けるステップを含んでいる請求項1記載の方法。
- 各第1のスレッドは関連した第1のメタデータセットを有している請求項1記載の方法。
- 各第1のスレッドは制御信号をさらに含んでいる請求項1記載の方法。
- 第1のスレッドの少なくともある定まったものは、並列に独立に処理される請求項11記載の方法。
- デジタルデータを処理する装置であって、この装置は
デジタルデータを複数のブロックに分割し、
各第1のスレッドが複数のブロックの少なくとも1つのを含むように、複数の第1のスレッドを生成し、
複数の圧縮された第1のスレッドを得るために複数の第1のスレッドのそれぞれを処理し、各圧縮された第1のスレッドはデジタルデータの少なくとも1つの圧縮されたブロックを含む
ように構成された1つまたはそれより多いプロセッサを含み、
該1つまたはそれより多いプロセッサにより、
圧縮された第1のスレッドのそれぞれを除去し及び圧縮された第1のブロックを保存するために圧縮された第1のスレッドのそれぞれを処理し、
各第2のスレッドが複数の圧縮された第1のブロックの少なくとも1つを含むように、複数の第2のスレッドを生成し、そして
複数の圧縮された第2のスレッドを得るために複数の第2のスレッドのそれぞれを処理し、各圧縮された第2のスレッドはデジタルデータの少なくとも1つの圧縮された第2のブロックを含む
ように構成されていることを特徴とする装置。 - 1つまたはそれより多いプロセッサは第1のスレッドのそれぞれが無損失圧縮を行うように処理するように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、第1のスレッドのそれぞれを処理することが、複数の第1のスレッドのそれぞれを独立に処理するように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、第1のスレッドの少なくともある定まったものが並列に独立に処理するように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、デジタル的に圧縮されたデータを得るために、複数の圧縮された第1のスレッドのそれぞれ内の圧縮されたブロックを組合せるように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、複数の第1のスレッドを生成することが、複数の第1のスレッドのそれぞれの中のブロックがある共通した圧縮特性を共用するように、デジタルデータの複数のブロックのそれぞれを複数の第1のスレッドの1つと関連付けることを含むように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、複数の第1のスレッドのそれぞれを生成することが複数のブロックのそれぞれのデータタイプを使用し、第1のスレッドのそれぞれが類似のデータタイプを有するブロックを含むように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、各ブロックに対する推定された圧縮時間および推定された圧縮量を予測するように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、データの分割が各ブロックのデータタイプを考慮して複数のブロックのそれぞれのサイズを決定することを含むように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、第2のスレッドのそれぞれの処理が、複数の第2のスレッドのそれぞれを独立に処理するように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、第2のスレッドの少なくともある定まったものが並列に独立に処理されるように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、複数の第2のスレッドのそれぞれを処理する間に、各ブロックを処理するために使用された同じ圧縮アルゴリズムが対応した圧縮されたブロックを処理するためにさらに使用されるように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、デジタル的に圧縮されたデータを得るために、複数の圧縮された第2のスレッドのそれぞれ内の圧縮されたブロックを組合せるように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、複数の第2のスレッドを生成することが、複数の第2のスレッドのそれぞれの中の圧縮された第1のブロックがある共通した圧縮特性を共用するように、複数の圧縮された第1のブロックのそれぞれを複数の第2のスレッドの1つと関連付けることを含むように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、各第1のスレッドが関連した第1のメタデータセットを有するように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、各第1のスレッドが制御信号をさらに含むように構成されている請求項18記載の装置。
- 1つまたはそれより多いプロセッサは、第1のスレッドの少なくともある定まったものが、並列に独立に処理されるように構成されている請求項28記載の装置。
- コンピュータに請求項1から17のいずれか1項による方法を実行させるようにするプログラム命令を含むコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/727,096 US20020101932A1 (en) | 2000-11-29 | 2000-11-29 | Method and apparatus for encoding information using multiple passes and decoding in a single pass |
PCT/US2001/051146 WO2002045271A2 (en) | 2000-11-29 | 2001-11-02 | Method and apparatus for encoding information using multiple passes and decoding in a single pass |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004533733A JP2004533733A (ja) | 2004-11-04 |
JP4028381B2 true JP4028381B2 (ja) | 2007-12-26 |
Family
ID=24921318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002546297A Expired - Fee Related JP4028381B2 (ja) | 2000-11-29 | 2001-11-02 | 多数のパスを使用して情報を符号化し、単一のパスで復号する方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20020101932A1 (ja) |
EP (1) | EP1338091A2 (ja) |
JP (1) | JP4028381B2 (ja) |
KR (1) | KR20030086580A (ja) |
CN (1) | CN1539202A (ja) |
AU (2) | AU3416802A (ja) |
WO (1) | WO2002045271A2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636724B2 (en) * | 2001-08-31 | 2009-12-22 | Peerify Technologies LLC | Data storage system and method by shredding and deshredding |
US20080209231A1 (en) * | 2004-10-12 | 2008-08-28 | Information And Communications University Research And Industrial Cooperation Group | Contents Encryption Method, System and Method for Providing Contents Through Network Using the Encryption Method |
JP5431148B2 (ja) | 2006-05-31 | 2014-03-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ストレージ用論理データオブジェクトの変換方法およびシステム |
US8868930B2 (en) | 2006-05-31 | 2014-10-21 | International Business Machines Corporation | Systems and methods for transformation of logical data objects for storage |
JP5263169B2 (ja) * | 2007-10-25 | 2013-08-14 | 富士通株式会社 | 情報提供方法、中継方法、情報保持装置、中継器 |
US8705879B2 (en) * | 2009-04-01 | 2014-04-22 | Microsoft Corporation | Image compression acceleration using multiple processors |
CN101794219B (zh) * | 2009-12-30 | 2012-12-12 | 飞天诚信科技股份有限公司 | .net文件的压缩方法和装置 |
CN101770367B (zh) * | 2009-12-30 | 2012-10-31 | 飞天诚信科技股份有限公司 | .net文件压缩方法和装置 |
CN104881240B (zh) * | 2014-02-27 | 2018-04-24 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
US10503709B2 (en) * | 2014-03-11 | 2019-12-10 | Sap Se | Data content identification |
CN106331712B (zh) * | 2015-06-30 | 2019-06-25 | 展讯通信(上海)有限公司 | 一种视频图像压缩方法 |
US10210391B1 (en) * | 2017-08-07 | 2019-02-19 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for detecting actions in videos using contour sequences |
CN108259243A (zh) * | 2018-01-12 | 2018-07-06 | 深圳市卓讯信息技术有限公司 | 基于微服务技术架构的数据处理方法、终端及计算机存储介质 |
CN109309501B (zh) * | 2018-09-12 | 2022-04-29 | 成都宝通天宇电子科技有限公司 | 高精度多环数据压缩方法 |
US11252416B2 (en) * | 2019-07-09 | 2022-02-15 | Himax Technologies Limited | Method and device of compression image with block-wise bit rate control |
WO2021234936A1 (ja) * | 2020-05-22 | 2021-11-25 | 株式会社Tvt | データ送信装置、プログラム及びシステム |
US11836388B2 (en) * | 2021-04-21 | 2023-12-05 | EMC IP Holding Company LLC | Intelligent metadata compression |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5109433A (en) * | 1989-10-13 | 1992-04-28 | Microsoft Corporation | Compressing and decompressing text files |
US5533051A (en) * | 1993-03-12 | 1996-07-02 | The James Group | Method for data compression |
US5414650A (en) * | 1993-03-24 | 1995-05-09 | Compression Research Group, Inc. | Parsing information onto packets using context-insensitive parsing rules based on packet characteristics |
WO1995029437A1 (fr) * | 1994-04-22 | 1995-11-02 | Sony Corporation | Dispositif et methode pour transmettre des donnees et dispositif et methode pour enregistrer des donnees |
US5870036A (en) * | 1995-02-24 | 1999-02-09 | International Business Machines Corporation | Adaptive multiple dictionary data compression |
WO1997006602A1 (en) * | 1995-08-03 | 1997-02-20 | Eulmi, Sam, H. | Recursive data compression |
US5928327A (en) * | 1996-08-08 | 1999-07-27 | Wang; Pong-Sheng | System and process for delivering digital data on demand |
JP4091990B2 (ja) * | 1997-03-07 | 2008-05-28 | インテリジェント・コンプレッション・テクノロジーズ | データ符号化ネットワーク |
US6366289B1 (en) * | 1998-07-17 | 2002-04-02 | Microsoft Corporation | Method and system for managing a display image in compressed and uncompressed blocks |
US6208273B1 (en) * | 1999-01-29 | 2001-03-27 | Interactive Silicon, Inc. | System and method for performing scalable embedded parallel data compression |
-
2000
- 2000-11-29 US US09/727,096 patent/US20020101932A1/en not_active Abandoned
-
2001
- 2001-11-02 AU AU3416802A patent/AU3416802A/xx active Pending
- 2001-11-02 CN CNA018221963A patent/CN1539202A/zh active Pending
- 2001-11-02 KR KR10-2003-7007275A patent/KR20030086580A/ko not_active Application Discontinuation
- 2001-11-02 EP EP01985197A patent/EP1338091A2/en not_active Withdrawn
- 2001-11-02 JP JP2002546297A patent/JP4028381B2/ja not_active Expired - Fee Related
- 2001-11-02 AU AU2002234168A patent/AU2002234168B2/en not_active Ceased
- 2001-11-02 WO PCT/US2001/051146 patent/WO2002045271A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2002045271A2 (en) | 2002-06-06 |
EP1338091A2 (en) | 2003-08-27 |
AU3416802A (en) | 2002-06-11 |
KR20030086580A (ko) | 2003-11-10 |
JP2004533733A (ja) | 2004-11-04 |
WO2002045271A3 (en) | 2003-03-13 |
AU2002234168B2 (en) | 2006-12-07 |
US20020101932A1 (en) | 2002-08-01 |
CN1539202A (zh) | 2004-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4028381B2 (ja) | 多数のパスを使用して情報を符号化し、単一のパスで復号する方法および装置 | |
US11238341B2 (en) | Efficient encoding and decoding sequences using variational autoencoders | |
US10169359B1 (en) | Distribution content-aware compression and decompression of data | |
US9503123B1 (en) | Random access to compressed data using bitwise indices | |
US9048862B2 (en) | Systems and methods for selecting data compression for storage data in a storage system | |
US9798731B2 (en) | Delta compression of probabilistically clustered chunks of data | |
US8650144B2 (en) | Apparatus and methods for lossless compression of numerical attributes in rule based systems | |
US8456332B2 (en) | Systems and methods for compression of logical data objects for storage | |
JP5719037B2 (ja) | ストレージ装置及び重複データ検出方法 | |
US8400335B2 (en) | Using variable length code tables to compress an input data stream to a compressed output data stream | |
AU2002234168A1 (en) | Method and apparatus for encoding information using multiple passes and decoding in a single pass | |
US10122379B1 (en) | Content-aware compression of data with reduced number of class codes to be encoded | |
US20130179413A1 (en) | Compressed Distributed Storage Systems And Methods For Providing Same | |
US20120173778A1 (en) | Dynamic compression of an i/o data block | |
CN113296709B (zh) | 用于去重的方法和设备 | |
US8515882B2 (en) | Efficient storage of individuals for optimization simulation | |
US8117343B2 (en) | Landmark chunking of landmarkless regions | |
WO2022157751A1 (en) | A method and system for lossy compression of log files of data | |
US8878705B1 (en) | Variable bit-length reiterative lossless compression system and method | |
JP7047110B2 (ja) | コンテンツ非依存のファイルインデックス化の方法及びシステム | |
KR102366069B1 (ko) | 큰 데이터를 더 작은 표현으로 변환하고 더 작은 표현을 원래의 큰 데이터로 재변환하기 위한 시스템들 및 방법들 | |
JP2020053820A (ja) | 量子化及び符号化器作成方法、圧縮器作成方法、圧縮器作成装置及びプログラム | |
US12001237B2 (en) | Pattern-based cache block compression | |
US20230113436A1 (en) | Selective data compression based on data similarity | |
KR101357196B1 (ko) | 네트워크 코딩의 데이터 복원 장치 및 데이터 복원 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060620 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060920 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061002 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070515 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070815 |
|
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: 20070911 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071011 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101019 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |