【文献】
SERFOZO,P et al.,Performance requirements of the Mojette Transform for internet distributed databases and image processing,2008 11th International Conference on Optimization of Electrical and Electronic Equipment,2008年 5月22日
【文献】
NORMAND,N et al.,Controlled redundancy for image coding and high-speed transmission,Visual Communications and Image Processing 96,1996年 2月27日
(58)【調査した分野】(Int.Cl.,DB名)
前記所定の値はゼロであり、前記更新されたパリティ射影ベクトルを生成することは、前記符号化射影方向を使用して生成された前記パリティ射影ベクトルの対応する値から、前記再構築射影ベクトルの対応する値を減算することによって、前記更新されたパリティ射影ベクトルの各々の値を得ることを有する、請求項1に記載の方法。
前記更新されたパリティ射影ベクトルの値を前記2次元凸台の上に反復して逆射影することと、前記逆射影から計算された値に基づいて、前記更新されたパリティ射影ベクトルをさらに更新することと、をさらに有する、請求項1または2に記載の方法。
コンピュータ可読媒体中に固定されて埋め込まれたコンピュータプログラムコードを有するコンピュータプログラム製品であって、前記コンピュータプログラムコードは、コンピュータシステムに提供されて実行されたときに、サイズNのデータブロックを再構築する方法を前記コンピュータに実行させる命令を有しており、
前記データブロックは、消失符号を用いて符号化されて、Ns個の組織的シンボルベクトルの集合と、前記データブロックの2次元凸台の上への写像からのNp個のパリティ射影ベクトルの集合とを生成したものであり、前記組織的シンボルベクトルは前記台の上に写像された前記データブロックのシンボルに対応し、前記パリティ射影ベクトルは、それぞれの符号化射影方向を用いて前記台の上に写像された前記データブロックのシンボルのNp個の射影にそれぞれ対応し、前記データブロックは、前記Np個のパリティ射影ベクトルの集合を用いて、Ns個の入力ベクトルの集合から再構築され、前記方法は、
少なくとも1つの消失を含む入力ベクトルの各々に関し、各消失されたシンボルの値を所定の値に更新することと、
前記更新された値を有する前記Ns個の入力ベクトルを前記2次元凸台の上に写像することと、
符号化射影方向を使用した、前記更新された値を有する前記Ns個の入力ベクトルの前記2次元凸台の上への写像から、再構築射影ベクトルを生成することと、
前記再構築射影ベクトルと、前記符号化射影方向を使用して生成された前記パリティ射影ベクトルと、から、更新されたパリティ射影ベクトルを生成することと、
を有する、コンピュータプログラム製品。
コンピュータプログラムを格納した非一過性コンピュータ可読記録媒体であって、前記コンピュータプログラムは、実行されたときに、メモリに作動的に接続されたプロセッサを有する装置にサイズNのデータブロックを再構築する方法を実行させ、
前記データブロックは、消失符号を用いて符号化されて、Ns個の組織的シンボルベクトルの集合と、前記データブロックの2次元凸台の上への写像からのNp個のパリティ射影ベクトルの集合とを生成したものであり、前記組織的シンボルベクトルは前記台の上に写像された前記データブロックのシンボルに対応し、前記パリティ射影ベクトルは、それぞれの符号化射影方向を用いて前記台の上に写像された前記データブロックのシンボルのNp個の射影にそれぞれ対応し、前記データブロックは、前記Np個のパリティ射影ベクトルの集合を用いて、Ns個の入力ベクトルの集合から再構築され、前記方法は、
少なくとも1つの消失を含む入力ベクトルの各々に関し、各消失されたシンボルの値を所定の値に更新することと、
前記更新された値を有する前記Ns個の入力ベクトルを前記2次元凸台の上に写像することと、
符号化射影方向を使用した、前記更新された値を有する前記Ns個の入力ベクトルの前記2次元凸台の上への写像から、再構築射影ベクトルを生成することと、
前記再構築射影ベクトルと、前記符号化射影方向を使用して生成された前記パリティ射影ベクトルと、から、更新されたパリティ射影ベクトルを生成することと、
を有する、記録媒体。
【発明の概要】
【発明が解決しようとする課題】
【0008】
したがって、アルゴリズムの複雑さ及びレイテンシ性能に関し、特に復号段階におけるそれらに関し、依然として、改良された消失符号化及び復号アルゴリズムに対する必要性がある。
【0009】
本発明の主題の開示の目的は、データブロックを再構築するためのシステム及び方法を提供することにある。
【課題を解決するための手段】
【0010】
本発明の主題の開示の一態様に従えば、サイズNのデータブロックを再構築する方法であって、データブロックは、消失符号を用いて符号化されて、N
s個の組織的(systematic)シンボルベクトルの集合と、データブロックの2次元凸台の上への写像からのN
p個のパリティ射影ベクトルの集合とを生成したものであり、組織的シンボルベクトルは台の上に写像されたデータブロックのシンボルに対応し、パリティ射影ベクトルは、それぞれの符号化射影方向を用いて台の上に写像されたデータブロックのシンボルのN
p個の射影にそれぞれ対応し、データブロックは、N
p個のパリティ射影ベクトルの集合を用いて、N
s個の入力ベクトルの集合から再構築される方法は、少なくとも1つの消失を含む入力ベクトルの各々に関し、各消失されたシンボルの値を所定の値に更新することと、更新された値を有するN
s個の入力ベクトルを2次元凸台の上に写像することと、符号化射影方向を使用した、更新された値を有するN
s個の入力ベクトルの2次元凸台の上への写像から、再構築射影ベクトルを生成することと、再構築射影ベクトルと、符号化射影方向を使用して生成されたパリティ射影ベクトルと、から、更新されたパリティ射影ベクトルを生成することと、を有する。
【0011】
再構築されたデータブロックの提案された方式は、Mojette(モジェット)変換符号化方式に有利に基づいている。書籍である非特許文献2に説明されるMojette変換は、リード−ソロモン符号化方式と同程度には最適というわけではないが、復号段階に対する低減された複雑さ及びレイテンシの利点を有する符号化方式を与える。Mojette変換は、符号化されるべきデータの2次元台(two-dimensional support;ここで、2D supportあるいは2D-supportとも呼ばれる)の上への写像に基づいて計算される射影ベクトルを生成する。
【0012】
提案された方式は、Mojette変換を用いるデータの組織的符号化にも有利に基づいている。リード−ソロモン符号化方式は、最大距離分離(Maximum Distance Separable;MDS)符号化方式であるのに対し、ここで提案された方式は、この場合、(1+ε)MDS符号化方式を与える。この観点からすると、上述したように、Mojette変換は準最適符号化方式である。しかしながら、再構築可能性の適切な判断基準が満たされるとき、生成された射影(または射影ベクトル)の各々は2次元台の失われた線(line)を回復することが可能であることを示すことができる。失われた線の再構築は、ここで規定されている初期化プロセスとともに、逆Mojette変換を使用して実行することができる。したがって、再構築プロセスは、符号化段階で計算された利用可能な射影の数と同数の失われた線を再構築することができるであろう。
【0013】
一態様において、所定の値はゼロであり、更新されたパリティ射影ベクトルを生成することは、符号化射影方向を使用して生成されたパリティ射影ベクトルの対応する値から、再構築射影ベクトルの対応する値を減算することによって、更新されたパリティ射影ベクトルの各々の値を得ることを有する。
【0014】
別の態様において、方法は、さらに、更新されたパリティ射影ベクトルの値を2次元凸台の上に反復して逆射影することと、逆射影から計算された値に基づいて、更新されたパリティ射影ベクトルをさらに更新することと、を有する。
【0015】
さらに別の態様において、それぞれの符号化射影方向を用いて台の上に写像されたデータブロックのシンボルのN
p個の射影は、それぞれの射影方向(p
i,q
i)にしたがう、写像されたデータブロックの前記シンボルf(k;l)の射影であり、ここで射影ベクトル
【0016】
【数1】
【0017】
の位置b
nにおけるその値は、
【0018】
【数2】
【0019】
であり、ここでΔ(・)は、Δ(0)=1かつΔ(h≠0)=0である。
【0020】
さらに別の態様において、2次元凸台は、サイズがP×Qの長方形の形状であり、ここでP×Q≧Nであって、
【0021】
【数3】
【0022】
と定義される。
【0023】
さらに別の態様において、
射影ベクトル
【0024】
【数4】
【0025】
の位置b
nにおけるその値は、
【0026】
【数5】
【0027】
である。
【0028】
本開示のまたさらなる様相において、非一過性コンピュータ可読記録媒体が開示される。コンピュータ可読記録媒体は、実行されたときに、メモリに作動的に接続されたプロセッサを有する装置に、データブロックを再構築するためのここで開示された方法のいずれかを実行させるコンピュータプログラムを格納することができる。
【0029】
1またはそれ以上の追加の様相に基づけば、装置が開示される。装置は、プロセッサと、プロセッサに作動的に接続されたメモリと、を備えていてよく、データブロックを再構築するためのここで開示された方法のいずれかを実行するように構成されていてもよい。
【0030】
またさらに別の様相に従えば、コンピュータ可読媒体中に固定されて埋め込まれたコンピュータプログラムコードを有するコンピュータプログラム製品が開示される。コンピュータプログラムコードは、コンピュータシステムに提供されて実行されたときに、データブロックを再構築するためのここで開示された方法のいずれかをコンピュータに実行させる。
【0031】
なお、プロセスとして、装置として、システムとして、デバイスとして、また、現在知られていて今後発展される応用のための方法として、またこれらに限定されることなく、種々のやり方で本発明を実行し利用することができるを理解すべきである。
【0032】
本明細書とともに図面を参照することにより、本発明の主題の開示がよりよく理解され、本発明の種々の目的及び利点が当業者に対しより明らかになるであろう。
【発明を実施するための形態】
【0034】
ここで開示される要素の利点及び他の特徴は、この技術形式における当業者により容易に明らかになるであろう。いくつかの好ましい実施形態についての以下の詳細な説明は、図面を併用して、主題技術の代表的な実施形態を説明する。ここで同様の参照番号は、同様の構造要素を示している。
【0035】
さらに、ここでの教示は、幅広い種々の形態で具体化でき、ここで開示されるいずれかの特定の構造及び/または機能は単なる見本であることが明らかであるべきである。特に、当業者は、ここに開示される様相は他のいずれの様相とは独立に実装することができ、いくつかの様相を種々のやり方で組み合わせることができることを理解するであろう。
【0036】
本発明の開示は、以下に、1またはそれ以上の例示実施形態に基づく方法、システム及びコンピュータプログラムについての機能、エンジン、ブロック図、およびフローチャート表現を参照して説明される。説明された機能、エンジン、ブロック図のブロック及びフローチャート表現の各々は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはこれらの任意の適切な組み合わせによって実装されることができる。ソフトウェアにより実装された場合、機能、エンジン、ブロック図のブロック、及び/またはフローチャート表現は、コンピュータプログラム命令またはソフトウェアコードで実装することができる。コンピュータ上あるいは他のプログラム可能データ処理装置上で実行されて本明細書で説明される機能を実現する手段を生成するように、それらのコンピュータプログラム命令またはソフトウェアコードは、コンピュータ可読媒体によって格納されたり送信されたり、あるいは、汎用コンピュータ、特殊用途コンピュータ、他のプログラム可能データ処理装置上にロードされて機械を生成してもよい。
【0037】
コンピュータ可読媒体の実施形態は、それらに限定されるものではないが、コンピュータ記憶媒体と、1つの場所から他の場所へのコンピュータプログラムの移送を容易にする任意の媒体を含む通信媒体との両方を含んでいる。ここで使用されるように、「コンピュータ記憶媒体」はコンピュータがアクセスすることができる任意の物理媒体を含んでいる。コンピュータ記憶媒体の例は、それらに限定されるものではないが、フラッシュドライブまたは他のフラッシュメモリデバイス(例えば、メモリキー、メモリスティック、キードライブ)、CD−ROMまたは他の光学記憶装置、DVD、磁気ディスク記憶装置または他の磁気記憶装置、メモリチップ、RAM、ROM、EEPROM、スマートカード、あるいは、コンピュータプロセッサが読むことができる命令またはデータ構造の形態でのプログラムコードを運搬しあるいは格納するために用いることができる他の任意の適切な形態を含んでいる。同様に、ルータ、ゲートウェイ、サーバ、または他の伝送装置、有線(同軸ケーブル、ファイバ、ツイストペア、DSLケーブル)あるいは無線(赤外線、無線周波数、セルラ、マイクロ波)を含む種々の形態のコンピュータ媒体が、コンピュータに命令を送信あるいは搬送してもよい。命令は、それらに限定されるものではないが、アセンブリ言語、C、C++、Visual Basic(登録商標)、HTML、PHP、Java(登録商標)、Javascript(登録商標)及びPythonを含む任意のコンピュータプログラミング言語からのコードからなっていてもよい。
【0038】
さらに、本明細書で使用されるように用語「例示」及び「例示的な」は、例、事例または説明としての機能を果たしていることを意味する。ここで「例示」及び「例示的な」として説明されるあらちゆる様相または設計は、必ずしも他の様相または設計に対して好ましいあるいは有利であると解釈されるべきものではない。
【0039】
提案されたデータブロック再構築方式は、バイナリ(二進)データのようなデジタルデータに対してふさわしいものである。しかしながら、いずれかのデータ書式(フォーマット)あるいはデータ表現に限定されるものではない。特に、ここで説明される例示実施形態は、整数値の上で総和(summation)を行う射影とMojette(正及び逆)変換とを使用するが、本発明の開示は、これらに限定されるものではなく、位数qのガロア体GF(q)において値を有する元の上で実行される射影とMojette(正及び逆)変換に対して等しく適用な可能なものである。ここでqは2以上の整数である。このような場合、整数の総和は、それぞれのガロア体GF(q)での対応する演算に置き換えられなければならない。例えば、GF(2)の元すなわちバイナリデータの上で射影とMojette変換とが計算されるとき、整数の総和は論理XOR演算に置き換えられることができる。
【0040】
図面を参照すると、
図1は、Mojette変換を用いたサイズ(大きさ)Nのデータブロックの例示的な符号化を示している。
【0041】
入力データブロックは、所定のサイズのバイナリシンボルであってよいN個の入力シンボルを有する。入力データブロックは、まず、2次元の幾何学的凸台(geometrical convex support)の上に写像され、次に、写像に基づいてメモリに格納される。2次元幾何学的凸台は、入力データブロックによって台を完全に埋めつくすことができるように選択される。与えられた台を埋めつくすこと関して入力データブロックのサイズが不十分であれば、上記の条件が満足されるように、ダミーデータも入力データブロックに挿入されてもよい。
【0042】
例えば、幾何学的凸台は、サイズP×Qの長方形の形状であってもよい。そのような場合、入力データブロックは、サイズP×Qのエントリのメモリアレイ内に格納されるであろう。このメモリアレイは、P行Q列を有する入力データブロックの行列表現に対応する。メモリアレイの大きさは、その中に入力データブロックの全体を格納できるように、すなわち、条件P×Q≧Nが満足されるように選ばれる。以下では、メモリアレイでのそこに格納されたシンボルの位置は、k=0,…,P−1、l=0,…,Q−1として、f(k;l)で表されるであろう。
【0043】
N
p個のパリティシンボルベクトル(または射影ベクトル)が、以下の式
【0045】
にしたがうN
p個の射影方向(projection direction)に基づいて、メモリアレイ内に格納されたシンボルf(k;l)の射影を用いて生成される。ここでb
nは、射影ベクトル
【0047】
のシンボルのインデックス(指標)であり、Δ(m)は、クロネッカー(Kronecker)関数(Δ(0)=1及びΔ(m≠0)=0)を示している。個々の線n=−q
i・k+p
i・lに所属しメモリアレイに格納された各シンボルf(k;l)は、射影(p
i,q
i)のビン(bin)に寄与する。
【0048】
N
p個の方向射影の集合は、計算された射影から入力データブロックが再構築することができることを保障するために、いわゆるカッツ(Katz)の判定基準を満足するように選択されてもよい。長方形の形状とされた台の場合、カッツの判定基準は、以下のように述べることができる:
サイズP×Qの長方形アレイ上のピクセル(pixel)の集合を仮定し、また、|q
i|>0として、N
p個の射影方向の集合
【0050】
であるならば、(P×Q)上で定義されるユニークな像が、方向
【0052】
での射影の集合によって再構築されることができる。カッツの判定基準についてのさらなる詳細は、非特許文献2で見ることができる。
【0053】
例えば、N
p個の方向射影の集合は、以下の条件を考慮して選択することができる:
0,…,N
p−1に対し、
【0055】
射影方向パラメータp
iの各々は整数である。この場合、N
p個のパリティシンボルベクトル(または射影ベクトル)は、以下の式
【0057】
にしたがうN
p個の方向p
iに基づいて、メモリアレイ内に格納されたシンボルf(k;l)の射影を用いて生成されることができる。ここでb
nは、射影ベクトル
【0059】
のシンボルのインデックス(指標)であり、Δ(m)は、クロネッカー関数(Δ(0)=1及びΔ(m≠0)=0)を示している。
【0060】
入力データブロック及びパリティベクトルは、次に、多重化されて、組織的データ(すなわち、入力データブロックのデータ)のほかにパリティデータ(すなわち、パリティベクトルすなわち計算された射影のシンボル)とを有する符号化されたデータの集合を生成する。符号化されたデータのこの集合は、符号化の出力を構成し、これは記憶のために使用することができ、この場合、組織的データとパリティデータの両方が、場合によっては分散型である記憶装置に格納される。これにより、データ複製のコストなしに冗長性を与えることができる。
【0061】
分散型の記憶装置は、異なるメモリユニット内に格納された組織的データ及びパリティデータによって使用されることができ、あるいは異なる記憶装置パラメータによって使用されることができる。例えば、パリティデータを格納するために複製を用いることができ、その一方で、組織的データには複製が用いられないようにすることもできる。さらに、組織的データとパリティデータのそれら自身が分散形態で格納されていてもよい。各々の場合、分散型記憶装置は、記憶ユニットの障害に対する格納データの保護が最適化されるような形態で格納データを分散させるために使用されてもよい。
【0062】
図2a、
図2b及び
図2cは、Mojette変換射影を用いる、例示データブロックの符号化を示している。
【0063】
図2aに示されたものは、符号化されるべき、サイズが15のデータブロックである。
【0064】
図2bにおいて、同じデータブロックのデータが、3つの行と5つの列を有するサイズ3×5の行列表現で示されている。1番目のパリティベクトル
【0066】
が、水平方向パラメータp
0によって定義される方向を有する射影を用いて生成される。ここでp
0=0である。上述したように、この水平方向パラメータ値を有する方向は、垂直方向、すなわち行列表現の列によって定義される方向に対応する。これにより、パリティベクトルの各々の元(ここではシンボルとも称される)
【0068】
は、行列表現のそれぞれの列要素の和の計算によって決定される。
【0069】
この例において、生成されたパリティベクトルは、
【0071】
図2cにおいて、データブロックのデータが、サイズ3×5の同じ行列表現で示されている。2番目のパリティベクトル
【0073】
が、水平方向パラメータp
1によって定義される方向を有する射影を用いて生成される。ここでp
1=0である。この水平方向パラメータ値を有する方向は、行列表現の対角線によって定義される方向に対応する。これにより、パリティベクトルの各々の元(ここではシンボルとも称される)
【0075】
は、図に示されるように、行列表現のそれぞれの対角線方向の線の上の元の和の計算によって決定される。
【0076】
この例において、生成されたパリティベクトルは、
【0078】
したがって、サイズ15のデータブロックの符号化は、符号化されたデータに対応する組織的データブロックと、符号化されたデータの行列表現の元の射影を計算することによってそのシンボルが決定される2つのパリティベクトルとを生成する。この例において、組織的データとパリティデータとの全体のサイズは27である。言い換えれば、図示された符号化の符号化率は1.8である。
【0079】
図3に示されているものは、
図2aに示されているデータブロックの、一実施形態にしたがう再構築である。
【0080】
この例では、組織的ベクトルの1つが失われ、その結果、利用できる組織的ベクトルでは、3つの組織的ベクトルのうちの2つの組織的ベクトルについての長方形台(
図3のサイズ3×5の行列表現)の上への写像のみが可能である。写像の最初の2つの線に対応する利用可能なベクトル(3;0;1;4;7)及び(2;4;8;2;1)を用いて写像は再構成される。消失のために欠けている最後の線の値は、所定の値で初期化される(図示される例では、そのような所定の値は0に等しい)。
【0081】
図3にさらに示されたものは、利用可能なパリティベクトルであり、これは、符号化の際に、射影方向(p=0;q=1)にしたがった符号化写像の値の射影を用いて生成されたものである。
【0082】
消失を置き換える初期化値を用いてひとたび写像が再構成されると、パリティ射影ベクトルが利用可能な射影方向、この例では射影方向(p=0,q=1)、と同じ射影方向にしたがって、再構成された写像上の射影ベクトルを計算することにより、再構築射影ベクトルが生成される。
【0083】
この例では、生成された再構築射影ベクトルは、
【0085】
次に、更新されたパリティ射影ベクトルが、再構築された射影ベクトル(5;4;9;6;8)と、射影方向(p=0;q=1)を用いて生成されたパリティ射影ベクトル、すなわちベクトル(5;5;15;9;12)と、から生成される。この例では、更新されたパリティ射影ベクトルは、再構築射影ベクトルの値を、パリティ射影ベクトルの対応する値から差し引くことによって生成され、結果として、更新されたパリティ射影ベクトル(0;1;6;3;4)がもたらされる。
【0086】
いくつかの実施形態において、更新されたパリティ射影ベクトルの値は、再構築された値によって初期化値を置き換えるために、再構成された写像の上に逆射影される。ここに示される例では、(3×5)長方形台の上への更新されたパリティ射影ベクトル(0;1;6;3;4)の逆射影は、最初の長方形台写像を導き、したがって、利用可能な組織的データと利用可能なパリティデータとを使用して、失われたデータが回復したことになる。
【0087】
逆射影の演算については、非特許文献2の第4章("Reconstructability with the Inverse Mojette Transform")に詳細に説明されている。
【0088】
図4a及び
図4bに示されているものは、他の実施形態に基づく、
図2aに示されるデータブロックの再構築である。
【0089】
この例では、2個の組織的ベクトルが失われており、その結果、利用できる組織的ベクトルでは、3つの組織的ベクトルのうちの1つの組織的ベクトルについての長方形台(
図4aのサイズ3×5の行列表現)の上への写像のみが可能である。写像の2番目の線に対応する唯一の利用可能なベクトル(2;4;8;2;1)を用いて写像は再構成され、消失のために欠けている1番目と最後の線の値は、所定の値に初期化される(図示される例では、そのような所定の値は0に等しい)。
【0090】
図4aにさらに示されているものは、利用可能な複数のパリティベクトルであり、これは、符号化の際に、射影方向(p=0;q=1)及び(p=1;q=1)にそれぞれしたがった符号化写像の値の射影を用いて生成されたものである。
【0091】
消失を置き換える初期化値を用いてひとたび写像が再構成されると、パリティ射影ベクトルが利用可能な射影方向、この例では射影方向(p=0,q=1)及び(p=1,q=1)、と同じ射影方向にしたがって、再構成された写像上の複数の射影ベクトルを計算することにより、複数の再構築射影ベクトルが生成される。
【0092】
この例では、生成された1番目の再構築射影ベクトルは、
【0094】
生成された2番目の再構築射影ベクトルは、
【0096】
次に、更新されたパリティ射影ベクトルが、一方の側として再構築射影ベクトル(2;4;8;2;1)及び(0;2;4;8;2;1;0)と、射影方向(p=0;q=1)及び(p=1;q=1)を用いて生成されたパリティ射影ベクトル、すなわちベクトル(5;5;15;9;12)及び(3;2;5;13;15;4;4)とから生成される。この例では、更新されたパリティ射影ベクトルは、再構築射影ベクトルの値を、再構築射影ベクトルと同じ射影方向を用いて生成されたパリティ射影ベクトルの対応する値から差し引くことによって生成され、結果として、更新されたパリティ射影ベクトル(3;1;7;7;11)及び(3;0;1;5;13;3;4)がもたらされる。
【0097】
いくつかの実施形態において、逆射影を用いる反復Mojette再構築アルゴリズムが実行されて、初期データブロックの再構築を完成する。
【0098】
Mojette再構築アルゴリズムは反復を実行し、各反復は、逆射影が可能である利用可能な射影(それらの値はビンとも呼ばれる)における値、すなわち、2次元台のたった1つの値が射影のその対応する線に関して未知であるビンの特定を含んでいる。反復はまた、逆射影されることができるビンがひとたび特定されたときに、2次元台内であってその射影の線b=k・q
i−l・p
iにある値f(k;l)のうちのどれが未だに再構築されていないかの判定を含んでいる。
【0099】
これらの演算は、2次元台上の射影角の同じ集合を用いて計算された射影の2つの集合を使用することができる。一方の例として2次元台はすべて1に等しい値を有し(2次元台はこのときユニタリ像(image)と呼ばれる)、また、2次元台は、f(k;l)=k+l・Pに等しい値を有する(このとき2次元台はインデックス像と呼ばれる)。ここでPは台の幅である。
【0100】
再構築可能なビンは、ユニタリ像において、1(2次元台でのこのビンに対する1つの値)に等しいビン値によって特定される。再構築可能なビンの各々に対し、インデックス像の変換での対応するビンは、直接、2次元台での再構築する値の位置を与える。
【0101】
2次元台での値の再構築ののち、再構築された値の寄与を取り除くために、利用可能な射影が更新される。
【0102】
図4bは、各ビン値に対応する2次元台での値の個数とともに、
図4aに示される上述した例示実施形態の再構築射影と利用可能なパリティ射影とに基づいて得られた2つの更新されたパリティ射影を例として示している。
【0103】
例えば、2番目の更新されたパリティ射影において、ビン値3は、2次元台上の単一の値に対応し、ビン値0は、2次元台上の2つの値に対応し、ビン値1,5,13の各々は、2次元台上の3つの値に対応し、ビン値3は2次元台上の2つの値に対応し、ビン値4は2次元台上の単一の値に対応する。
【0104】
1番目の更新されたパリティ射影に関し、射影方向が与えられると、すべてのビン値は、2次元台に存在する線と同数の値に対応し、すなわちこの例では3個の値に対応する。
【0105】
2次元台の1つの値に対応する2つのビンは、2番目の更新されたパリティ射影に対応する射影方向にしたがって逆射影されることができる。
【0106】
逆射影は、失われている値のうちの2つが挿入された2次元台を与え、次に、2次元台における更新された値に基づいて、2番目の更新されたパリティ射影を再度更新することができる。
【0107】
2次元台内のさらに2つの失われている値もまた、2次元台内の2つの値に対応する2番目の更新されたパリティ射影内のビンの値に基づいて、再構築することができる。
【0108】
図4bに示されているものは、2次元台内の2つの値に対応する2番目の更新されたパリティ射影内の2つのビン、すなわち、2番目と6番目のビンであり、これらはそれぞれ、値0及び3に対応する。これらの2つの値も2次元台内で逆射影される。
【0109】
再構築アルゴリズムの例示する以下のステップが
図4cに示されている。
図4cを参照すると、1番目の更新されたパリティ射影内のビンの値に基づいて、2次元台内の4つの依然として失われている値も再構築することができる。上述したように、1番目の更新されたパリティ射影のビンの値は、2次元台内の3つの値に対応する。しかしながら、再構築のこの段階において、4個の再構築された値の各々に対し、2つの値が利用可能である。なぜならば、それらは初期の2次元台での失われていないデータの中にあったか、あるいは、それらは既に再構築されているからである。
【0110】
それら4個の値の各々の再構築が
図4cに示されており、ここでは各再構築された値が灰色によって強調されている。
【0111】
最後に、2番目の更新されたパリティ射影のビンの値を使用して、最後の2つの失われた値が再構築される。1番目の更新されたパリティ射影の場合と同様に、再構築のこの段階で、2次元台の3つの値に対応する2番目の更新されたパリティ射影のビンの値を使用することができ、それらの値のうちの2つがこの段階で利用可能である。
【0112】
例を単純化する目的で、再構築ループの各反復でのパリティ射影の更新は示されていないが、再構築アルゴリズムは、2次元台の上に逆射影されるべき値を計算するために、このような反復する更新を使用することができる。
【0113】
(3×5)長方形台の上への更新されたパリティ射影値の逆射影は、次に、最初の長方形台写像をもたらすことができ、その結果、利用可能な組織的データ及び利用可能なパリティデータを使用して、失われたデータを回復することができる。
【0114】
2次元台の上に写像された消失データの再構築を初期化するための提案されたプロセスは、長方形でない凸台にも適用することができる。
図5は、提案されたプロセスを適用することができるそのような上凸2次元台の例を示している。
図5に示される例において、台の線の数で定義される、台の深さ(depth)は、5に等しい。
【0115】
このような凸台の上に写像される符号化済みデータの再構築のための異なる判断基準を上述の非特許文献2に見ることができる。
【0116】
図面を参照すると、
図6は、本明細書の開示に基づく再構築方式を使用するように構成された例示のデータ記憶/読出しシステム100を示している。データ記憶/読出しシステム100は、データ記憶メモリ101、データ記憶エンジン102、データ読出しエンジン103、制御エンジン104及びデータメモリ105を含むコンピュータシステムである。
図1に示されるアーキテクチャにおいて、データ記憶メモリ101、データ記憶エンジン102、データ読出しエンジン103及びデータメモリ105の全てが、制御エンジン104を介して、相互に作動的に接続している。
【0117】
一実施形態において、データ記憶メモリ101は、場合によっては分散形態で、組織的データとこの組織的データから生成されたパリティデータとを含むデータを記憶するデータベースである。すなわち、データ記憶メモリ101は、データが分散形態で格納される複数のメモリバンクあるいはメモリモジュールを有している。上述したように、組織的データは、パリティデータと一緒に格納されることはできない。
【0118】
一実施形態において、制御エンジン104は、任意の適切なマイクロプロセッサ、ASIC及び/または状態機械であってよいプロセッサを含んでいる。種々の実施形態に基づいて、コンピュータのうちの1以上が、パラレルコンピューティングを提供する複数のプロセッサを有するマルチプロセッサコンピュータとして構成されることができる。制御エンジン104はまた、コンピュータによって実行されたときに本明細書に記載された要素をそのコンピュータに実行させるコンピュータプログラム命令またはソフトウェアコードを格納することが可能な、限定をするものではないがデータメモリ105のようなコンピュータ記憶媒体を有していても、あるいはそのコンピュータ記憶媒体と通信してもよい。データ記憶メモリ101と他のデータメモリ105は、制御エンジン104に接続されたコンピュータ記憶媒体であって、それぞれのデータベース及び関連するハードウェアに格納されたデータの管理を容易にするために、関連する1または2以上のデータベース管理システムとともに動作可能であっててもよい。
【0119】
図6を参照して示され説明されたデータ記憶/読出しシステム100は、ほんの一例として与えられていることが理解される。数多くの他のアーキテクチャ、動作環境及び構成が可能である。システムの他の実施形態は、より少数のあるいはより多数の要素を含むことができ、
図6に示されたシステム要素に関して説明された機能性のいくつかあるいはすべてを組み込まれていてもよい。したがって、データ記憶/読出しシステム100の部分としてデータ記憶メモリ101、データ記憶エンジン102、データ読出しエンジン103、制御エンジン104及びデータメモリ105が示されているが、要素101−105の位置と制御には何らの限定も置かれない。特に、他の実施形態において、要素101−105は。異なるエンティティまたは演算システムの部分であってもよい。
【0120】
なおさらに、データ記憶エンジン102及び/またはデータ検索エンジン103は、プロセッサ駆動型(processor-driven)デバイスを含んでいてもよく、プロセッサとプロセッサに作動的に接続されたメモリとを含んでいてもよく、ソフトウェア、ハードウェア、ファームウェアまたはこれらの組み合わせによって実装されて本明細書に記載された能力を実現し機能を実行してもよい。
【0121】
いくつかの実施形態において、データ記憶エンジン102は、データ記憶メモリ101内に格納されるべきデータの組織的符号化を管理するように構成されている。データ記憶エンジンは、符号化されている格納された組織的データに関連付けられている格納されたパリティデータに含まれるであろう1またはいくつかのパリティ射影ベクトルを、Mojette変換を介して生成するように構成されている。
【0122】
いくつかの実施形態において、データ読出しエンジン103は、データ記憶メモリ101から読出された利用可能な組織的データ及びパリティデータに基づいて、本明細書で開示した再構築方式を実行するように、構成されている。
【0123】
好ましい実施形態について本発明を説明してきたが、当業者は、添付の特許請求の範囲によって規定された本発明の範囲から逸脱することなく、種々の変更及び/または改良をなすことができることを容易に理解するであろう。特に、本発明は、開示されたシステムアーキテクチャに関する特定の実施形態に限定されるものではなく、添付の特許請求の範囲によって規定された本発明の範囲から逸脱することなく種々のシステムアーキテクチャや要素を用いて実現できる。
【0124】
特定の好ましい実施形態の文脈で本発明を説明してきたが、いろいろな他の実施形態において、システム、装置及び方法の特定の効果、特徴及び様相が実現できることが理解されるべきである。さらに、ここで説明した種々の様相及び特徴を別々に、または組み合わせて、または相互に置き換えて実践できることと、特徴及び様相のいろいろな組み合わせ及びサブコンビネーションが実現できてしかもなお本発明の範囲内にあることとが意図される。さらにまた、上述したシステム及び装置は、好ましい実施形態で説明したモジュール及び機能の全てを含んでいる必要はない。
【0125】
特に、データ記憶/読出しシステムの文脈で本発明を説明してきたが、例えば無線伝送チャネルである伝送チャネルを介するデータ伝送の文脈においても本発明を適用することができる。そのような文脈において、本明細書で開示した再構築方式は、受信データの復号と失われたあるいはエラーを含む受信データの再構築とを実行する装置によって使用されるであろう。
【0126】
本明細書で説明される情報及び信号は、いろいろな異なる技術及び技法のいずれかを用いて表現することができる。例えば、データ、命令、コマンド、情報、信号、ビット、シンボル及びチップは、電圧、電流、電磁波、磁場または磁性粒子、光学場または光学粒子、あるいはこれらの組み合わせによって表すことができる。
【0127】
実施形態に応じ、本明細書で説明される方法のいずれかにおける特定の行為、事象または機能は、異なるシーケンスで実行されることができ、加えられたり、混ぜられたり、すべていっしょ除外されたりしてもよい(例えば、本方法の実行には説明した行為または事象の全てが必要というわけではない)。さらに、ある実施形態において、行為または事象は、逐次的というよりもむしろ同時に実行されてもよい。