JP4907380B2 - データ生成方法、データ復元方法、データ生成装置およびデータ復元装置 - Google Patents
データ生成方法、データ復元方法、データ生成装置およびデータ復元装置 Download PDFInfo
- Publication number
- JP4907380B2 JP4907380B2 JP2007041211A JP2007041211A JP4907380B2 JP 4907380 B2 JP4907380 B2 JP 4907380B2 JP 2007041211 A JP2007041211 A JP 2007041211A JP 2007041211 A JP2007041211 A JP 2007041211A JP 4907380 B2 JP4907380 B2 JP 4907380B2
- Authority
- JP
- Japan
- Prior art keywords
- data string
- data
- old
- mark area
- difference
- 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
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
このデータ生成方法においては、新データ列に検証対象位置を設定し、検証対象位置を開始位置とする未検証データ列の少なくとも一部と内容が一致する同一データ列を旧データ列から検索し、未検証データ列の少なくとも一部に対応する差分単位データ列を差分データ列の一部として順次生成する。また、旧データ列の一部に旧目印領域を設定する。
ここで、差分単位データ列の生成においては、
1.同一データ列が旧データ列から検出されなければ、未検証データ列の少なくとも一部に対応する差分単位データ列として、未検証データ列の少なくとも一部を記録する。好ましくは、未検証データ列の先頭のデータを記録してもよい。検証対象位置を所定分だけ進める。
2.同一データ列が旧目印領域内から検出されたときには、未検証データ列の少なくとも一部に対応する差分単位データ列として、同一データ列の旧目印領域内における位置と同一データ列の長さを記録する。検証対象位置を同一データ列の長さ分だけ進める。
3.同一データ列が旧目印領域外から検出されたときには、同一データ列を含むように旧目印領域を移動させ、未検証データ列の少なくとも一部に対応する差分単位データ列として、旧目印領域の移動後の位置と同一データ列の長さを記録する。このときにも、検証対象位置を同一データ列の長さ分だけ進める。
新データ列において未検証データ列が残っているときには、上記処理を再実行する。
このデータ復元方法においては、旧データ列の一部に旧目印領域を設定し、新データ列のうち、差分単位データ列に対応する部分の新データ列を旧データ列に基づいて復元する。
新データ列の復元においては、
1.差分データ列から所定単位の差分データ列を読み出す。
2.読み出した差分データ列が新データ列のデータそのものを示すときには、前記差分データ列に含まれるデータを新データ列の一部として復元する。
3.読み出した差分データ列が位置と長さを示すときには、旧目印領域内における「位置」から「長さ」分のデータ列を新データ列の一部として復元する。
4.読み出した差分データ列が旧目印領域の移動位置を示すときには、旧目印領域を指定位置まで移動させる。
差分データ列において新データ列の復元をしていないデータ範囲が存在するときには、新データ列の復元を再実行することにより、旧データ列から新データ列を復元する。
ネットワークシステム101において、サーバ装置100とクライアント端末200aはインターネット300を介して接続される。また、クライアント端末200bは、基地局302を介してインターネット300と接続されている。クライアント端末200aやクライアント端末200b(以下、まとめていうときには、単に「クライアント端末200」とよぶ)は、携帯電話、PDA(Personal Digital Assistant)、ラップトップ・コンピュータなどのモバイル機器であってもよいし、デスクトップ・コンピュータ、セットトップ・ボックスなどであってもよい。
サーバ装置100は、旧データと新データの両方を保持している。一方、クライアント端末200は旧データのみを保持している。以下、バイナリデータの集合という意味で、旧データ、新データ、差分データをそれぞれ「旧データ列」、「新データ列」、「差分データ列」と表記することにする。
最新バージョンがA(1.2)であるときに、クライアント端末200aにはA(1.0)が導入されているとする。このときには、クライアント端末200aは、差分データ列D(1.0→1.2)をダウンロードすれば、既に保持しているA(1.0)からA(1.2)を復元できることになる。
新データ列は、旧データ列のアップデート版であってもよいが、必ずしもこれに限定する必要はなく、新データ列と旧データ列は本質的に異なるコンテンツであってもよい。
差分処理および復元処理については2つの実施例にわけて説明する。第2実施例は、第1実施例に対する改良例である。そのため、まず、第1実施例について図3から図16に関連して詳述したあとに、第2実施例について図17から図21に関連して説明する。なお、「本実施例」というときには「第1実施例」と「第2実施例」の両方を意味するものとする。
[第1実施例]
サーバ装置100は、旧データ列に「旧目印領域(Ro)」とよばれる所定幅以内の領域を設定する。「旧目印領域」は、所定長を上限とする大きさの領域であって、旧データ列における「位置」と「データ幅」のセットとして表現される。本実施例における旧目印領域のサイズは65535バイトである。初期設定時においては、旧目印領域Roの始点位置と旧データ列の始点位置は一致する。旧目印領域Roの始点位置とは、同図においては、旧目印領域Roに対応するデータ範囲のうち最も左に位置するバイトデータの位置Swoである。また、旧データ列の始点位置とは、同図においては、旧データ列の先頭バイトデータの位置Soである。いいかえれば、旧目印領域Roの始点位置は、旧データ列の先頭バイトに初期設定される。差分処理中に旧目印領域Roは左右に移動するがそのサイズ自体は変化しない。
(a)(検証下限値以上の)同一データ列が存在しない。
(b)(検証下限値以上の)同一データ列が存在する。
(b−1).同一データ列の始点位置が旧目印領域内にある。
(b−2).同一データ列の始点位置が旧目印領域外にある。
同一検索の結果に応じて、未検証データ列の全部または一部は「差分単位データ列」に変換される。サーバ装置100は、検証対象位置Pを動かしながら同一検索を実行し、それにあわせて差分単位データ列を次々と生成する。未検証データ列の全てに範囲について同一検索を行った結果として生成される差分単位データ列の集合が差分データ列となる。以下、(a)を「同一なし」、(b)を「同一あり」、(b−1)を「目印領域内検出」、(b−2)を「目印領域外検出」とよぶことにする。
アルゴリズムの詳細については図5以降にて説明するが、その前にサーバ装置100の構成を図4を参照しつつ説明する。
ここに示す各ブロックは、ハードウェア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
後の図12に示すクライアント端末200の機能ブロック図についても同様である。
通信部110は、クライアント端末200との通信処理を担当する。データ処理部120は、通信部110から取得されたデータを元にして各種のデータ処理を実行する。データ処理部120は、通信部110とデータ保持部160の間のインタフェースの役割も果たす。データ保持部160は、旧データ列や新データ列等の各種データを格納する。
目印領域処理部130は、旧目印領域Ro、また、第2実施例に関連して後述する「新目印領域(Rn)」を制御する。「新目印領域」は、所定長を上限とする大きさの領域であって、新データ列における位置とデータ幅として定義されてもよい。目印領域処理部130は、各目印領域を移動させる移動設定部132と、新目印領域と旧目印領域のいずれかを「現目印領域」として設定するアクティブ設定部138を含む。「現目印領域」についても第2実施例に関連して後述する。移動設定部132は、旧目印領域を移動させる旧目印領域設定部134と新目印領域を移動させる新目印領域設定部136を含む。
なお、目印領域処理部130による目印領域に関する処理と、差分処理部140による差分データ生成に関する処理とは、単一のコンピュータプログラムによって実現されてもよい。
まず、旧目印領域設定部134は、旧データ列の先頭バイトが旧目印領域Roの始点位置となるように、旧目印領域Roを初期設定する(S10)。検証位置特定部142は、新データ列の先頭バイトに検証対象位置Pを初期設定する(S12)。同一検索部144は、検証対象位置Pの1バイト分のデータ列と同じ内容のデータ列を、旧データ列全体を対象として同一検索する(S16)。初期状態においては、未検証データ列の先頭1バイトと同一内容のデータ列を検索することになる。検出されなければ(S18のN)、差分データ生成部146は検索対象位置Pの未検証データ列の1バイト分を差分単位データ列として取り出して符号化し(S30)、検証対象位置Pを1バイトだけ進める(S32)。処理はS14に戻る。新データ列全体について検証が完了すると(S14のY)、差分データ列の終端を示す「終端マーク(EOF)」を挿入する(S34)。新データ列に未検証のデータ範囲が存在するときには(S14のN)、移動後の検証対象位置Pに基づいて、S16以降の処理を再実行する。
すなわち、上記(a)の「同一なし」に該当する場合には(S18のN、S20のN)、差分データ生成部146は検索対象位置Pの新データ列の1バイト分を差分単位データ列として取り出して符号化し(S30)、検証対象位置Pを1バイトだけ進める(S32)。「同一なし」時の処理内容については、次の図6に関連して更に詳述する。
こうして、新データ列の検証対象位置Pを少しずつ移動させながら差分単位データ列の集合が生成されることになる。S28やS30にて差分単位データ列を順次生成していき、最終的に、全体としての差分データ列を生成する。実際には、同一データ列から差分単位データ列を生成する処理S100は更に複雑であるが、これについては図10に関連して説明する。差分処理の基本的な仕組みは以上の通りである。
同一検索部144は、検証対象位置Pにある1バイトの部分データ列「n0」と同じデータ列を旧データ列から検索する。検出できれば、検証対象位置P〜P+1の2バイト分の部分データ列「n0、n1」と一致するか判定する。こうして1バイトずつ延長しながら同一データ列の一致する長さを検証する。同図の場合、同一検索の結果が「同一なし」である場合を示している。すなわち、検証対象位置P〜P+2までの3バイト分のデータ列について同一データ列が検出できなかった場合を示している。
同図の場合、まず、検証下限値以上一致する同一データ列「m0、m1、m2、m3、m4」が旧目印領域Ro内を始点位置として検出されている。このときの旧目印領域Ro内における始点位置と長さを保存しておく。更に、同一検索を続行すると、検証下限値以上一致する同一データ列「m0、m1、m2」が旧目印領域Ro外を始点位置として検出されている。同一データ列「m0、m1、m2、m3、m4」の方が、同一データ列「m0、m1、m2」より長いため、同一検索の結果は「(b−1)目印領域内検出」となる。
同図においては、5バイトのデータ列「n0〜n4」と最長一致するデータ列「m0〜m4」が同一データ列として検出されている。同一データ列「m0〜m4」の始点位置、すなわち、「m0」の位置は旧目印領域Roの外にある。したがって、同一検索の結果は、「(b−2)目印領域外検出」である。
ただし、実装においては、ハッシュ値による検索により同一データ列候補の位置を特定したあとは、旧データ列における候補位置のデータそのものを検証することにより最終的に同一データ列を特定している。たとえば、ハッシュ関数によっては、「abc」というデータ列と「bac」というデータ列が同一のハッシュ値を生成してしまう可能性がある。そこで、図5のS16からS20においては、まず、ハッシュ値に基づいて同一データ列の存在する可能性のある位置を特定した上で、1バイトずつ検証することにより、高速性と正確性を両立させている。
検証上限値Lmを設けることにより、同一サイズnの取りうる範囲を狭めることができる。特に、差分単位データ列を符号化する上で検証上限値Lmの設定は有効である。実装における検証上限値Lmは645バイトであるが、ここでは説明を簡単にするためにLm=7バイトであるとする。同図においては、12バイトの部分データ列「n0〜n11」とデータ列「m0〜m11」が最長一致し、その長さが12バイトであるとしても、検証上限値Lm=7バイトなので、7バイトの部分データ列「n0〜n6」について7バイトの同一データ列「m0〜m6」が検出される。
(A)(b−2)の目印領域外検出が発生したとき(以下、この場合の目印領域の移動のことを「調整移動」とよぶ)。
(B)同一サイズL=検証上限値Lmのとき(以下、この場合の目印領域の移動のことを「上限移動」とよぶ)。
の2種類である。調整移動のときには、差分単位データ列には目印領域の移動マークMと移動位置Mrが明示的に記録されるが、上限移動のときにはLmが暗黙的に目印領域の移動量を示すことになる。
同図は、図6〜図7に関連して説明した内容を踏まえて、図5のS100の処理内容を詳細に示す。(b−1)の目印領域内検出のときには(S102のY)、差分データ生成部146は同一サイズLが検証上限値Lmとなるか判定する(S104)。同一サイズL=Lmであれば(S104のY)、差分データ生成部146は部分データ列から差分単位データ列(Lm,n)を生成する(S106)。nは、旧目印領域Roにおける目印領域内位置を示す。より正確には、エンコード部148は、(Lm,n)をそれぞれ符号化する。旧目印領域設定部134は旧目印領域Roを上限移動させる(S106)。
同一サイズL<Lmであれば(S104のN)、差分データ生成部146は部分データ列から差分データ列(L,n)を生成する(S110)。このときには、旧目印領域Roは上限移動しない。
同一サイズL<Lmであれば(S114のN)、差分データ生成部146は未検証データ列を差分単位データ列(M,Mr)(L,0)に変換する(S120)。このときには、旧目印領域Roは上限移動しない。
長い同一データ列が多く検出されるほど差分データ列を小さくできる。しかし、符号化処理等の過程において、必ずしも同一サイズが大きければ差分データ列を小さくできるとは限らない。たとえば、目印領域外検出の場合調整移動が発生するが、移動マークMと移動位置Mrが必要となり、特に移動位置Mrが大きな値となる可能性がある。そのため、旧目印領域外において大きな同一データ列を検出できても、移動位置Mrが大きい分だけ差分データ列のサイズは大きくなってしまうかもしれない。
そこで、サーバ装置100は、未検証データ列と差分単位データ列を比較したときのデータサイズ率まで考慮して差分処理を実行する。このための処理が、図5で触れた「符号化データ決定処理」である。
符号化データ決定処理においても、旧データ列全体において可変長の未検証データ列と最長一致する同一データ列を検出することが基本原則である。ただし、符号化データ決定処理では、旧目印領域Ro内と旧目印領域外のそれぞれから最長一致する同一データ列を検出する。本実施例では、更に、旧データ列の範囲を3つに分けている。すなわち、旧目印領域Roよりも前方のデータ範囲A、旧目印領域Ro内のデータ範囲B、旧目印領域Roよりも後方のデータ範囲Cの3つである。このときにも、ハッシュ値に基づいて、同一検索部144は各データ範囲から同一データ列の存在する可能性がある候補位置を検索する。そして、旧データ列における各候補位置のデータ列を検証することにより、同一検索部144は、データ範囲A、B、Cのそれぞれに始点位置のある同一データ列を検出する。各データ範囲から検出される同一データ列は、各データ範囲において最長一致する同一データ列である。同図の場合、検証開始位置Pからの部分データ列として、部分データ列N1に対して同一データ列M1、部分データ列N2に対して同一データ列M2、部分データ列N3に対して同一データ列M3をそれぞれ検出する。部分データ列N3のサイズは、部分データ列N2や部分データ列N1のサイズよりも大きい。
データサイズ率=(差分単位データ列のサイズ)/(同一データ列のサイズ)
と定義する。データサイズ率が小さいほど、同一データ列(あるいは、同一データ列に対応する部分データ列)のサイズに比べて差分単位データ列のサイズが小さくなっていることになる。すなわち、効率よく差分単位データ列のサイズを小さくできていることになる。データサイズ率算出部150は、まず、部分データ列N1から同一データ列M1について差分単位データ列を試験的に生成し、部分データ列N1についてのデータサイズ率を算出する。同様にして、部分データ列N2と同一データ列M2、部分データ列N3と同一データ列M3についてもデータサイズ率を計算する。対象選択部149は、3つの同一データ列のうちもっともデータサイズ率が小さい同一データ列を選択する。差分データ生成部146は、選択された同一データ列に基づいて差分単位データ列を生成する。データサイズ率を考慮せず、最長一致する同一データ列を選ぶとすれば部分データ列N3と同一データ列M3から差分単位データ列が生成されることになる。これに対して符号化データ決定処理によりデータサイズ率まで考慮すると、部分データ列N1や部分データ列N2について差分単位データ列が生成される可能性もある。「部分データ列と最長一致する同一データ列」という観点だけではなく、「実際に効率的にデータサイズを小さくできる同一データ列」という観点からも差分生成処理を実行できるため、差分データ列のサイズを合理的に縮小できる。なお、ここでは、旧データ列の3つの範囲からそれぞれ最長一致する同一データ列を検索するとしているが、旧目印領域R0の内(B)と外(AとC)の2つの範囲からそれぞれ最長一致する同一データ列を検索するとしてもよい。
変形例として、検証対象位置Pを開始位置とする可変長の未検証データ列について、同一検索部144は、目印領域の内外にかかわらず検証下限値以上のサイズとなる長短様々な同一データ列を順次検出し、データサイズ率算出部150はその都度データサイズ率を算出してもよい。そして、対象選択部149は、最終的にデータサイズ率が最小となるときの同一データ列を選択してもよい。
図12は、クライアント端末200の機能ブロック図である。
クライアント端末200は、通信部210、データ処理部220およびデータ保持部240を含む。
通信部210は、インターネット300を介したサーバ装置100との通信を行う。データ処理部220は、通信部210から取得されたデータを元にして各種のデータ処理を実行する。データ処理部220は、通信部210とデータ保持部240の間のインタフェースの役割も果たす。データ保持部240は、旧データ列や新データ列等の各種データを格納する。
データ保持部240は、旧データ保持部242、新データ保持部244、差分データ保持部246を含む。旧データ保持部242は旧データ列を保持する。新データ保持部244は旧データ列と差分データ列から復元される新データ列を保持する。差分データ保持部246は差分データ列を保持する。
目印領域処理部222は、旧目印領域と、第2実施例で説明する「新目印領域(Rn)」を制御する。目印領域処理部222は、目印領域を移動させる移動設定部224と、新目印領域と旧目印領域のいずれかを「現目印領域」として設定するアクティブ設定部230を含む。「現目印領域」についても第2実施例に関連して説明する。移動設定部224は、旧目印領域を移動させる旧目印領域設定部226と新目印領域を移動させる新目印領域設定部228を含む。
読出部234は、差分データ列を順次読み出す。新データ生成部236は、旧データ列と差分データ列から新データ列を復元する。新データ生成部236はデコード部238を含む。デコード部238は差分データ列の符号を復号する
データ処理部220には、このほかにもクライアント端末200のアプリケーション実行機能などさまざまな機能が実装されている。
図13と図14ではフローチャートを用いて説明し、図15と図16では模式図により復元処理の内容を更に具体的に説明する。復元処理の目的は、旧データ列と差分データ列から新データ列を復元することである。そのために、旧目印領域設定部226は、まず、旧データ列の先頭バイトを始点位置として旧目印領域Roを初期設定する(S130)。読出部234は、新データ列の先頭バイトに復元開始位置Qを初期設定する(S132)。復元処理開始時には新データ列は存在しないので、復元開始位置Q=0となる。
読出部234は、同一サイズLを読み出し(S150)、次のデータを読み出す(S152)。デコード部238はこれを復元する(S154)。読出部234は、復元されたデータから目的領域内位置nを取得する(S156)。新データ生成部236は、旧目印領域Roを基準として、(L,n)から部分的な新データ列を復元する(S158)。すなわち、新データ生成部236は旧目印領域Ro内の位置nからLバイト分のデータ列を取り出して新データ列として追加する。
ここで、L=Lmであれば(S160のY)、旧目印領域設定部226は旧目印領域Roを上限移動させる(S162)。
同図においては、読み出した差分データ列において、「n0」という1バイトの文字データが含まれているとする。ただし、この文字データは符号化されている。読出部234は、まず、差分データ列として1バイトのデータ「n0」を抽出し、これをデコードし、文字データであると判定する。新データ生成部236は、復元中の新データ列において、復元開始位置Qに「n0」を追加する。復元開始位置はQ+1に変更される。このように、差分データ列が符号化された文字データであるときには、その文字データが新データ列として追加されていく。
読み出した差分データ列が(5,1)という変換データであったとする。「5」は同一サイズLを示し、「1」は目印領域内位置nを示す。このとき新データ生成部236は、旧目印領域Roの位置「1」から5バイト分のデータを新データ列に追加する。このため、(5,1)という小さな差分データ列から5バイト分の新データ列を復元できることになる。復元開始位置はQからQ+5に移動する。
更に、読み出した差分データ列が(M,Mr)(Lm,0)という変換データの場合には、旧目印領域設定部226は、旧目印領域RoをMrに調整移動させ、新データ生成部236は移動後の旧目印領域Ro’の始点位置から「Lm」バイト分のデータ列を取り出す。そのあと、更に、旧目印領域設定部226は、旧目印領域Roを上限移動させる。
[第2実施例]
同図において検証開始位置Pとすると、同一検索対象となるのは、旧データ列全体と、新データ列のうち「0〜(P−1)」の範囲である。すなわち、差分処理が進行し、Pが移動するごとに同一検索の対象範囲が拡大していく。このため、差分処理が進むほど、同一データ列の検出率がいっそう向上しやすい。第2実施例に示す差分処理は、同一内容のデータ列が繰り返し現れるタイプの新データ列において特に有効である。
ただし、第2実施例においては、旧目印領域Roと新目印領域Rnのいずれかを現目印領域Rcとして設定する。この現目印領域Rcには、常に、旧目印領域Roと新目印領域Rnのいずれかが設定されている。現目印領域Rcは、新データ列と旧データ列のどちらが「アクティブ」であるかを示す。一例を示す。
未検証データ列のうち同一データ列が検出された部分データ列「n0〜n4」の差分単位データ列は(Sw)(5,1)となる。Swは、現目印領域の変更を示す。現目印領域Rc=旧目印領域Roのときに、新データ列に基づいて差分単位データ列を生成するときには、新データ列を非アクティブからアクティブに変更する。このとき、アクティブ設定部138は、現目印領域Rc=新目印領域Rnに設定変更し、現目印領域Rcの設定変更を示すSwを差分単位データ列の一部として記録する。差分単位データ列(Sw)(5,1)は、変更後の現目印領域Rcについて、目印領域内位置n=1、同一サイズL=5のデータ列から新データ列を復元できることを示す。
復元側では、差分単位データ列からSwを検出すると、現目印領域Rcを設定変更する。
未検証データ列のうち同一データ列が検出された部分データ列「n0〜n4」の差分単位データ列は(5,1)となる。現目印領域Rc=新目印領域Rnのときに、新データ列に基づいて差分単位データ列を生成するときには、新データ列はアクティブのままである。すなわち、差分単位データ列(5,1)は、現在の現目印領域Rcについて、目印領域内位置n=1、同一サイズL=5のデータ列から新データ列を復元できることを示す。
なお、旧目印領域Ro内、旧目印領域Ro外、新目印領域Rn内、新目印領域Rn外の4つの範囲から最長一致する同一データ列をそれぞれ検出してもよい。また、6つ全ての同一データ列候補のデータサイズ率を比較するのではなく、順次一つずつ比較してデータサイズ率の小さい方を覚えておき最終的にデータサイズ率の小さいものを選択してもよい。
復元側のクライアント端末200においても、旧目印領域Roと新目印領域Rnのいずれかが現目印領域Rcとして設定される。復元側においても現目印領域Rcは、新データ列と旧データ列のどちらが「アクティブ」であるかを示す。ここで、読み出した差分データ列が(Sw)(5,1)であったとする。また、現目印領域Rc=旧目印領域Roであるとする。
クライアント端末200のアクティブ設定部230は現目印領域Rc=新目印領域Rnに設定変更し、新たな現目印領域Rcである新目印領域Rnについて、目印領域内位置「1」から5バイト分のデータ列を新データ列として追加する。
まず、旧目印領域設定部134は、旧データ列の先頭バイトが旧目印領域Roの始点位置となるように、旧目印領域Roを初期設定する(S60)。新目印領域設定部136は、新データ列の先頭バイトが新目印領域Rnの始点位置となるように、新目印領域Rnを初期設定する(S62)。アクティブ設定部138は、現目印領域Rc=旧目印領域Roとして初期設定する(S64)。検証位置特定部142は、新データ列の先頭バイトに検証対象位置Pを初期設定する(S66)。同一検索部144は、検証対象位置Pの1バイト分の部分データ列と同じ内容のデータ列を旧データ列全体と新データ列の(0〜P−1)の範囲を対象として検索する(S70)。検出されなければ(S170のN)、差分データ生成部146は検索対象位置Pの新データ列1バイト分を差分単位データ列として取り出して符号化し(S178)、検証対象位置Pを1バイトだけ進める(S180)。処理はS68に戻る。新データ列全体について検証が完了すると(S68のY)、差分データ列の終端を示す「終端マーク(EOF)」を挿入する(S182)。新データ列に未検証のデータ範囲が存在するときには(S68のN)、移動後の検証対象位置Pに基づいて、S70以降の処理を再実行する。
差分データ生成部146は、特定された同一データ列が旧データ列内にあるか新データ列内にあるかを判定する(S72)。
差分データ生成部146は同一データ列の始点位置が旧目印領域Ro内か否かを判定する(S74)。同一データ列の始点位置が旧目印領域Ro外であれば(S74のN)、すなわち、旧データ列について目印領域外検出の場合、旧目印領域設定部134は、旧目印領域Roの始点位置と同一データ列の始点位置が一致するように、旧目印領域Roを調整移動させる(S78)。同一データ列の始点位置が旧目印領域Ro内であれば(S74のY)、すなわち、旧データ列について目印領域内検出の場合、S78の処理はスキップされる。
差分データ生成部146は同一データ列の始点位置が新目印領域Rn内か否かを判定する(S86)。同一データ列の始点位置が新目印領域Rn外であれば(S86のN)、新目印領域設定部136は、新目印領域Rnの始点位置と同一データ列の始点位置が一致するように、新目印領域Rnを調整移動させる(S88)。同一データ列の始点位置が新目印領域Rn内であれば(S86のY)、S88の処理はスキップされる。
まず、旧目印領域設定部226は、旧データ列の先頭バイトを始点位置として旧目印領域Roを初期設定する(S1130)。新目印領域設定部228は、新データ列の先頭バイトを始点位置として新目印領域Rnを初期設定する(S1132)。ただし、この段階では新データ列は復元されていないので、新目印領域Roに含まれるデータは存在しない。アクティブ設定部230は、現目印領域Rc=旧目印領域Roに初期設定する(S1133)。読出部234は、新データ列の先頭バイトに復元開始位置Qを初期設定する(S1134)。
読出部234は、同一サイズLを読み出し(S1160)、次のデータは、目印領域内位置であるので、差分データを読み出す(S1162)。デコード部238はこれを復元する(S1164)。読出部234は、復元されたデータから目的領域内位置nを取得する(S1166)。新データ生成部236は、現目印領域Rcを基準として、(L,n)から部分的な新データ列を復元する(S1168)。すなわち、新データ生成部236は現目印領域Rc内の位置nからLバイト分のデータ列を取り出して新データ列として追加する。
ここで、L=Lmであれば(S1170のY)、旧目印領域設定部226または新目印領域設定部228は現目印領域Rcを上限移動させる(S1172)。
第1実施例に示したサーバ装置100によれば、新データ列に含まれるデータの特徴と旧データ列に含まれるデータの特徴に基づいてコンパクトな差分データ列を生成できる。第2実施例に示したサーバ装置100によれば、更に、新データ列自体も対象として同一データ列を検出できる。そのため、同一データ列の検出率をいっそう高めることができる。更に、図11に関連して説明したように、データサイズ減少率を考慮した差分処理を実行することにより、いっそう差分データ列のサイズを小さくできる。
このような差分データ列をクライアント端末200に送信することにより、クライアント端末200の旧データ列を適宜・一斉に更新させることができる。
また、本実施例に示した方法によれば、小さな処理負荷にて復元処理を実行できる。クライアント端末200が、CPUやメモリ等の計算資源に制約がある携帯電話などの場合、復元処理の処理負荷を抑制することは重要である。クライアント端末200は、実質的に、旧データ列や新データ列において、差分データ列による指定位置から指定量のデータを抽出したり、目印領域を移動させることにより復元処理を実行するのであって、ソート・比較・検索といった負荷の高い処理や、前の処理を覚えておくような高度な処理を実行する必要がない。
Claims (21)
- コンピュータが旧データ列と新データ列との差分データ列を生成する方法であって、
前記コンピュータが実行するステップとして、
前記旧データ列を取得するステップと、
前記新データ列を取得するステップと、
前記旧データ列の部分的な領域を示す旧目印領域を設定するステップと、
前記新データ列に検証対象位置を設定するステップと、
同一検索処理として、前記新データ列の前記検証対象位置を開始位置とする未検証データ列の少なくとも一部と内容が一致する同一データ列を前記旧データ列から検索するステップと、
前記同一検索処理の結果に基づいて、前記差分データ列の一部として、前記新データ列のうちの未検証データ列の少なくとも一部に対応する差分単位データ列を順次生成するステップと、
を備え、
前記差分単位データ列を生成するステップにおいては、
前記同一データ列が前記旧データ列から検出されなければ、前記差分単位データ列として、前記未検証データ列の先頭のデータを記録して、前記検証対象位置を所定分進め、
前記同一データ列が前記旧目印領域内から検出されたときには、前記差分単位データ列として、前記同一データ列の旧目印領域内における位置と前記同一データ列の長さを記録して、前記検証対象位置を前記同一データ列の長さ分進め、
前記同一データ列が前記旧目印領域外から検出されたときには、前記旧目印領域の始点位置が前記検出された同一データ列の始点位置と一致するように前記旧目印領域を移動させ、前記差分単位データ列として、少なくとも、前記旧目印領域の移動位置と前記同一データ列の長さを記録して、前記検証対象位置を前記同一データ列の長さ分進め、
前記新データ列において前記同一検索処理の対象となっていない未検証データ列が存在するときには、前記同一検索処理を再実行することにより、前記差分単位データ列を生成すること特徴とするデータ生成方法。 - 前記コンピュータが実行するステップとして、
前記差分データ列を通信回線を介して外部に送信するステップ、
を更に備えることを特徴とする請求項1に記載のデータ生成方法。 - 前記差分単位データ列を生成するステップにおいては、
さらに、検出された前記同一データ列が所定下限長以上の可変長のデータ列であるか否かを判定し、
所定下限長以上のときには、前記旧目印領域内における位置または前記旧目印領域の移動位置と、前記同一データ列の長さとを記録して、前記検証対象位置を前記同一データ列の長さ分進め、
所定下限長未満のときには、前記未検証データ列の先頭のデータを記録して、前記検証対象位置を所定分進めることを特徴とする請求項1又は請求項2に記載のデータ生成方法。 - 前記同一データ列を検索するステップにおいては、
前記未検証データ列の少なくとも一部に対して最長一致する同一データ列を検出し、
前記差分単位データ列を生成するステップにおいては、
前記未検証データ列のうち、最長一致した同一データ列と内容が一致する未検証データ列の少なくとも一部を対象として差分単位データ列を記録することを特徴とする請求項1から請求項3の何れか一項に記載のデータ生成方法。 - 前記差分単位データ列は、
前記同一データ列の前記旧目印領域内における位置、前記同一データ列の長さおよび前記旧目印領域の移動位置のうち少なくとも一つを所定の符号変換表により所定長の符号に変換された上で記録されることを特徴とする請求項1から請求項4の何れか一項に記載のデータ生成方法。 - 前記同一データ列を検索するステップにおいては、
前記未検証データ列の少なくとも一部に対して最長一致する同一データ列を前記旧目印領域内及び前記旧目印領域外から検出し、
前記差分単位データ列を生成するステップにおいては、
前記検出した同一データ列を差分単位データ列に変換するときのデータサイズ率を算出し、最もデータサイズ率が小さくなる同一データ列を対象として差分単位データ列を記録することを特徴とする請求項5に記載のデータ生成方法。 - 前記同一データ列は、所定上限長以下の可変長のデータ列であることを特徴とする請求項1から請求項6の何れか一項に記載のデータ生成方法。
- 前記差分単位データ列を生成するステップにおいては、
前記所定上限長の同一データ列が前記旧目印領域内から検出されたときには、前記差分単位データ列として、前記所定上限長分の一致を示す上限一致データを記録し、前記旧目印領域を所定量移動させることを特徴とする請求項7に記載のデータ生成方法。 - 前記差分単位データ列を生成するステップにおいては、
前記所定上限長の同一データ列が前記旧目印領域内から検出されたときに前記旧目印領域を所定量移動させても、前記差分単位データ列には、前記旧目印領域の移動位置を記録しないことを特徴とする請求項8に記載のデータ生成方法。 - 前記コンピュータが実行するステップとして、
所定のハッシュ関数により、前記旧データ列に含まれる所定長のデータ列をハッシュ値に変換するステップと、
前記所定のハッシュ関数により、前記新データ列に含まれる所定長のデータ列をハッシュ値に変換するステップと、
を更に備え、
前記同一データ列を検出するステップにおいては、
前記未検証データ列のハッシュ値と前記旧データ列のハッシュ値を比較することにより、前記未検証データ列に対する前記同一データ列を検出することを特徴とする請求項1から請求項9の何れか一項に記載のデータ生成方法。 - コンピュータが旧データ列と新データ列との差分データ列を生成する方法であって、
前記コンピュータが実行するステップとして、
前記旧データ列を取得するステップと、
前記新データ列を取得するステップと、
前記旧データ列の部分的な領域を示す旧目印領域を設定するステップと、
前記新データ列の部分的な領域を示す新目印領域を設定するステップと、
前記旧目印領域と前記新目印領域のいずれかを現目印領域として設定するステップと、
前記新データ列に検証対象位置を設定するステップと、
同一検索処理として、前記旧データ列と前記新データ列のうち既に生成されたデータ範囲とから、前記新データ列の前記検証対象位置を開始位置とする未検証データ列の少なくとも一部と内容が一致する同一データ列を検索するステップと、
前記同一検索処理の結果に基づいて、前記差分データ列の一部として、前記新データ列のうちの未検証データ列の少なくとも一部に対応する差分単位データ列を順次生成するステップと、
を備え、
前記差分単位データ列を生成するステップにおいては、
前記同一データ列が前記旧データ列および前記新データ列のいずれからもから検出されなければ、前記差分単位データ列として、前記未検証データ列の先頭のデータを記録して、前記検証対象位置を所定分進め、
前記同一データ列が前記旧データ列から検出されたときであって、現目印領域として前記新目印領域が設定されているときには、前記旧目印領域を現目印領域に設定し、現目印領域の変更を示すスイッチデータを差分データ列の一部として記録し、
前記同一データ列が前記旧データ列の前記旧目印領域内から検出されたときには、前記差分単位データ列として、前記同一データ列の旧目印領域内における位置と前記同一データ列の長さを記録して、前記検証対象位置を前記同一データ列の長さ分進め、
前記同一データ列が前記旧データ列の前記旧目印領域外から検出されたときには、前記旧目印領域の始点位置が前記検出された同一データ列の始点位置と一致するように前記旧目印領域を移動させ、前記未検証データ列の少なくとも一部に対応する差分単位データ列として、少なくとも、前記旧目印領域の移動位置と前記同一データ列の長さを記録して、前記検証対象位置を前記同一データ列の長さ分進め、
前記同一データ列が前記新データ列から検出されたときであって、現目印領域として前記旧目印領域が設定されているときには、前記新目印領域を現目印領域として設定し、スイッチデータを差分データ列の一部として記録し、
前記同一データ列が前記新データ列の前記新目印領域内から検出されたときには、前記差分単位データ列として、前記同一データ列の新目印領域内における位置と前記同一データ列の長さを記録して、前記検証対象位置を前記同一データ列の長さ分進め、
前記同一データ列が前記新データ列の前記新目印領域外から検出されたときには、前記同一データ列を含むように前記新目印領域を移動させ、前記未検証データ列の少なくとも一部に対応する差分単位データ列として、少なくとも、前記新目印領域の移動位置と前記同一データ列の長さを記録して、前記検証対象位置を前記同一データ列の長さ分進め、
前記新データ列において前記同一検索処理の対象となっていない未検証データ列が存在するときには、前記同一検索処理を再実行することにより、前記差分単位データ列を生成すること特徴とするデータ生成方法。 - 前記同一データ列を検索するステップにおいては、
前記未検証データ列の少なくとも一部に対して最長一致する同一データ列を検出し、
前記差分単位データ列を生成するステップにおいては、
前記未検証データ列のうち、最長一致した同一データ列と内容が一致する未検証データ列の少なくとも一部を対象として差分単位データ列を記録することを特徴とする請求項11に記載のデータ生成方法。 - 前記差分単位データ列は、前記同一データ列の位置、前記同一データ列の長さ、前記旧目印領域の移動位置および前記新目印領域の移動位置のうち少なくとも一つを所定の符号変換表により所定長の符号に変換された上で記録されることを特徴とする請求項11又は請求項12に記載のデータ生成方法。
- 前記同一データ列を検索するステップにおいては、
未検証データ列の少なくとも一部に対して最長一致する同一データ列を前記旧目印領域内と前記旧データ列における前記旧目印領域外、前記新目印領域内、前記新データ列における前記新目印領域外のうち何れかから少なくとも一つ検出し、
前記差分単位データ列を生成するステップにおいては、
前記旧目印領域内の同一データ列を差分単位データ列に変換するときのデータサイズ率、前記旧目印領域外の同一データ列を差分単位データ列に変換するときのデータサイズ率、前記新目印領域内の同一データ列を差分単位データ列に変換するときのデータサイズ率および前記新目印領域外の同一データ列を差分単位データ列に変換するときのデータサイズ率を算出し、最もデータサイズ率が小さくなる同一データ列を対象として差分単位データ列を記録することを特徴とする請求項13に記載のデータ生成方法。 - 旧データ列と新データ列との差分データ列を生成する装置であって、
前記旧データ列を保持する旧データ保持部と、
前記新データ列を保持する新データ保持部と、
前記旧データ列の部分的な領域を示す旧目印領域を設定する旧目印領域設定部と、
前記新データ列に検証対象位置を設定する検証位置設定部と、
同一検索処理として、前記新データ列の前記検証対象位置を開始位置とする未検証データ列の少なくとも一部と内容が一致する同一データ列を前記旧データ列から検索する同一検索部と、
前記同一検索処理の結果に基づいて、前記差分データ列の一部として、前記新データ列のうちの未検証データ列の少なくとも一部に対応する差分単位データ列を順次生成する差分生成部と、
を備え、
前記差分生成部は、
前記同一データ列が前記旧データ列から検出されなければ、前記差分単位データ列として、前記未検証データ列の先頭のデータを記録して、前記検証対象位置を所定分進め、
前記同一データ列が前記旧目印領域内から検出されたときには、前記差分単位データ列として、前記同一データ列の旧目印領域内における位置と前記同一データ列の長さを記録して、前記検証対象位置を前記同一データ列の長さ分進め、
前記同一データ列が前記旧目印領域外から検出されたときには、前記旧目印領域の始点位置が前記検出された同一データ列の始点位置と一致するように前記旧目印領域を移動させ、前記差分単位データ列として、少なくとも、前記旧目印領域の移動後の位置と前記同一データ列の長さを記録して、前記検証対象位置を前記同一データ列の長さ分進め、
前記新データ列において前記同一検索処理の対象となっていない未検証データ列が存在するときには、前記同一検索処理を再実行することにより、前記差分単位データ列を生成すること特徴とするデータ生成装置。 - 前記差分データ列を通信回線を介して外部に送信する差分送信部、
を更に備えることを特徴とする請求項15に記載のデータ生成装置。 - 旧データ列と新データ列との差分データ列を生成するコンピュータプログラムであって、
前記旧データ列を保持する機能と、
前記新データ列を保持する機能と、
前記旧データ列の部分的な領域を示す旧目印領域を設定する機能と、
前記新データ列に検証対象位置を設定する機能と、
同一検索処理として、前記新データ列の前記検証対象位置を開始位置とする未検証データ列の少なくとも一部と内容が一致する同一データ列を前記旧データ列から検索する機能と、
前記同一データ列が前記旧データ列から検出されなければ、前記差分データ列のうち前記部分データ列に対応する差分単位データ列として、前記未検証データ列の先頭のデータを記録して、前記検証対象位置を所定分進める機能と、
前記同一データ列が前記旧目印領域内から検出されたときには、前記差分単位データ列として、前記同一データ列の旧目印領域内における位置と前記同一データ列の長さを記録して、前記検証対象位置を前記同一データ列の長さ分進める機能と、
前記同一データ列が前記旧目印領域外から検出されたときには、前記旧目印領域の始点位置が前記検出された同一データ列の始点位置と一致するように前記旧目印領域を移動させ、前記差分単位データ列として、少なくとも、前記旧目印領域の移動後の位置と前記同一データ列の長さを記録して、前記検証対象位置を前記同一データ列の長さ分進める機能と、
前記新データ列において前記同一検索処理の対象となっていない未検証データ列が存在するときには、前記同一検索処理を再実行する機能と
をコンピュータに実現させるためのコンピュータプログラム。 - コンピュータが、請求項1から請求項10の何れか一項に記載のデータ生成方法により生成された、旧データ列と新データ列との差分データ列により、前記旧データ列に基づいて前記新データ列を復元する方法であって、
前記コンピュータが実行するステップとして、
前記旧データ列を取得するステップと、
前記差分データ列を取得するステップと、
前記旧データ列の部分的な領域を示す旧目印領域を設定するステップと、
前記読み出した差分データ列に基づいて前記旧データ列を用いて新データ列を復元するステップとを、
備え、
前記新データ列を復元するステップにおいては、
前記差分データ列から前記差分単位データ列を読み出し、
前記読み出した差分単位データ列が新データ列のデータそのものを示すときには、当該データを新データ列の一部として復元し、
前記読み出した差分単位データ列が位置と長さを示すときには、前記旧目印領域内における前記位置から前記長さ分のデータ列を前記新データ列の一部として復元し、
前記読み出した差分単位データ列が前記旧目印領域の移動位置を示すときには、前記旧目印領域を前記移動位置に移動させ、
前記差分データ列において前記新データ列を復元するステップを実行していないデータ範囲が存在するときには、前記復元するステップを再実行することにより、前記旧データ列から前記新データ列を復元することを特徴とするデータ復元方法。 - コンピュータが、請求項11から請求項14の何れか一項に記載のデータ生成方法により生成された、旧データ列と新データ列との差分データ列により、前記旧データ列に基づいて前記新データ列を復元する方法であって、
前記コンピュータが実行するステップとして、
前記旧データ列を取得するステップと、
前記差分データ列を取得するステップと、
前記旧データ列の部分的な領域を示す旧目印領域を設定するステップと、
前記新データ列の部分的な領域を示す新目印領域を前記新データ列のうち前記旧データ列から復元済みのデータ範囲における所定位置に設定するステップと、
前記読み出した差分データ列に基づいて前記旧データ列と前記新データ列の復元済みのデータ範囲とを用いて新データ列を復元するステップとを、
備え、
前記新データ列を復元するステップにおいては、
前記差分データ列から前記差分単位データ列を読み出し、
前記読み出した差分単位データ列が新データ列のデータそのものを示すときには、当該データを新データ列の一部として復元し、
前記読み出した差分単位データ列が位置と長さを示すときには、前記旧目印領域と前記新目印領域のいずれかに設定されている現目印領域内における前記位置から前記長さ分のデータ列を前記新データ列の一部として復元し、
前記読み出した差分単位データ列が前記現目印領域の移動位置を示すときには、前記現目印領域を前記移動位置に移動させ、
前記読み出した差分単位データ列が、現目印領域の変更を示すスイッチデータを示すときには、前記現目印領域を設定変更し、
前記差分データ列において新データ列を復元するステップを実行していないデータ範囲が存在するときには、前記復元するステップを再実行することにより、前記新データ列を復元することを特徴とするデータ復元方法。 - 請求項15又は請求項16に記載のデータ生成装置により生成された、旧データ列と新データ列との差分データ列により、前記旧データ列に基づいて前記新データ列を復元する装置であって、
前記旧データ列を保持する旧データ保持部と、
前記差分データ列を保持する差分データ保持部と、
前記旧データ列の部分的な領域を示す旧目印領域を設定する旧目印領域設定部と、
前記差分データ列に基づいて前記旧データ列を用いて新データ列を復元する復元部と、
を備え、
前記復元部は、
前記差分データ列から前記差分単位データ列を読み出し、
前記読み出した差分単位データ列が新データ列のデータそのものを示すときには、前記差分データ列に含まれるデータを新データ列の一部として復元し、
前記読み出した差分単位データ列が位置と長さを示すときには、前記旧目印領域内における前記位置から前記長さ分のデータ列を前記新データ列の一部として復元し、
前記読み出した差分単位データ列が前記旧目印領域の移動位置を示すときには、前記旧目印領域を前記移動位置に移動させ、
前記差分データ列において前記新データ列を復元していないデータ範囲が存在するときには、前記新データ列の復元を再実行することにより、前記旧データ列から前記新データ列を復元することを特徴とするデータ復元装置。 - 請求項17に記載のコンピュータプログラムにより生成された、旧データ列と新データ列との差分データ列により、前記旧データ列に基づいて前記新データ列を復元するコンピュータプログラムであって、
前記旧データ列を保持する機能と、
前記差分データ列を保持する機能と、
前記旧データ列の部分的な領域を示す旧目印領域を設定する機能と、
前記差分データ列から前記差分単位データ列を読み出す機能と、
前記読み出した差分単位データ列が新データ列のデータそのものを示すときには、前記差分単位データ列に含まれるデータを新データ列の一部として復元する機能と、
前記読み出した差分単位データ列が位置と長さを示すときには、前記旧目印領域内における前記位置から前記長さ分のデータ列を前記新データ列の一部として復元する機能と、
前記読み出した差分単位データ列が前記旧目印領域の移動位置を示すときには、前記旧目印領域を前記移動位置に移動させる機能と、
前記差分データ列において前記差分単位データ列を抽出していないデータ範囲が存在するときには、前記差分データ列から差分単位データ列の抽出を再実行する機能と、
をコンピュータに実現させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007041211A JP4907380B2 (ja) | 2007-02-21 | 2007-02-21 | データ生成方法、データ復元方法、データ生成装置およびデータ復元装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007041211A JP4907380B2 (ja) | 2007-02-21 | 2007-02-21 | データ生成方法、データ復元方法、データ生成装置およびデータ復元装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008204287A JP2008204287A (ja) | 2008-09-04 |
JP4907380B2 true JP4907380B2 (ja) | 2012-03-28 |
Family
ID=39781712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007041211A Expired - Fee Related JP4907380B2 (ja) | 2007-02-21 | 2007-02-21 | データ生成方法、データ復元方法、データ生成装置およびデータ復元装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4907380B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5347657B2 (ja) | 2009-03-31 | 2013-11-20 | 富士通株式会社 | データ記憶プログラム、方法、及び情報処理装置 |
JP5669431B2 (ja) * | 2010-05-06 | 2015-02-12 | キヤノン株式会社 | 情報処理装置、ファームウェア適用方法、及びコンピュータプログラム |
JP5907927B2 (ja) * | 2013-04-22 | 2016-04-26 | 京セラドキュメントソリューションズ株式会社 | 機器管理システム、電子機器、および機器管理プログラム |
DE112014006841B4 (de) * | 2014-07-28 | 2021-06-10 | Mitsubishi Electric Corporation | Datenaktualisierungssystem für eine mobile Navigationsvorrichtung zum Erzeugen von Differentialdaten und Speichervorrichtung hierfür |
CN110244973B (zh) * | 2018-03-09 | 2022-09-16 | 阿里巴巴(中国)有限公司 | 数据更新包的生成方法、装置及数据更新方法、装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004152136A (ja) * | 2002-10-31 | 2004-05-27 | Matsushita Electric Ind Co Ltd | データ更新システム、データ更新システムの差分データ生成装置及びプログラム、並びに更新後ファイル復元装置及びプログラム |
JP2004227520A (ja) * | 2003-01-27 | 2004-08-12 | Mitsubishi Electric Corp | 新旧プログラム書換情報生成装置及び新旧プログラム書換情報生成方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP4153324B2 (ja) * | 2003-01-31 | 2008-09-24 | 松下電器産業株式会社 | 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム |
JP4360816B2 (ja) * | 2003-03-20 | 2009-11-11 | アルパイン株式会社 | 地図データ更新方法及びナビゲーション装置 |
JP3990354B2 (ja) * | 2003-12-26 | 2007-10-10 | 株式会社東芝 | 通信システム |
JP4036852B2 (ja) * | 2004-09-13 | 2008-01-23 | 三菱電機株式会社 | 差分データ生成装置、差分データ生成方法および差分データ生成プログラム |
-
2007
- 2007-02-21 JP JP2007041211A patent/JP4907380B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008204287A (ja) | 2008-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9768802B2 (en) | Look-ahead hash chain matching for data compression | |
JP3571079B2 (ja) | データ圧縮方法及びシステム | |
JP4814292B2 (ja) | データ圧縮及び復元装置、並びに方法 | |
JP4907380B2 (ja) | データ生成方法、データ復元方法、データ生成装置およびデータ復元装置 | |
JP5008106B2 (ja) | データ圧縮装置および方法 | |
US20080033942A1 (en) | Substring search algorithm optimized for hardware acceleration | |
US9043275B2 (en) | Data synchronization using string matching | |
US8868584B2 (en) | Compression pattern matching | |
JP4156381B2 (ja) | 文字テーブルによって実施されるデータ圧縮の方法および装置 | |
JPS63161731A (ja) | 逐次誤り訂正復号化装置 | |
US20180276260A1 (en) | Search apparatus and search method | |
JP5778595B2 (ja) | データ圧縮方法及び装置 | |
JP5149063B2 (ja) | データ比較装置およびプログラム | |
CN107689796B (zh) | 一种基于先验信息的无损压缩文件容错解压方法 | |
US20150242433A1 (en) | Data compression apparatus and data compression method | |
KR102189920B1 (ko) | 비트 매칭 기반으로 선형 부호를 고속 복호화하는 방법 및 장치 | |
JP3384844B2 (ja) | データ圧縮方法および装置並びにデータ復元方法および装置 | |
JP2827982B2 (ja) | データ圧縮制御方法 | |
Kanaya et al. | An almost sure recurrence theorem with distortion for stationary ergodic sources | |
JP2000353961A (ja) | 画像処理装置 | |
JP3812289B2 (ja) | 符号化器と復号器、及び、符号化方法と復号方法 | |
JP4380052B2 (ja) | スライド辞書の故障検出方法及び故障検出装置 | |
CN115664428A (zh) | 译码方法及设备 | |
CN114124102A (zh) | 一种数据压缩方法、装置、设备及计算机存储介质 | |
JPH05150940A (ja) | データ圧縮方法およびデータ伸張方法ならびに装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100209 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20110707 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20110713 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111004 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111202 |
|
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: 20111222 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150120 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 |