JP5781867B2 - 相対および絶対デルタ値を使用するデータ圧縮および復元 - Google Patents

相対および絶対デルタ値を使用するデータ圧縮および復元 Download PDF

Info

Publication number
JP5781867B2
JP5781867B2 JP2011191535A JP2011191535A JP5781867B2 JP 5781867 B2 JP5781867 B2 JP 5781867B2 JP 2011191535 A JP2011191535 A JP 2011191535A JP 2011191535 A JP2011191535 A JP 2011191535A JP 5781867 B2 JP5781867 B2 JP 5781867B2
Authority
JP
Japan
Prior art keywords
data
item
store
storage location
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011191535A
Other languages
English (en)
Other versions
JP2012074026A (ja
JP2012074026A5 (ja
Inventor
ジョー・ドミニク・マイケル・タプリー
リーランド・エイヴィン
Original Assignee
アーム・リミテッド
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 アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2012074026A publication Critical patent/JP2012074026A/ja
Publication of JP2012074026A5 publication Critical patent/JP2012074026A5/ja
Application granted granted Critical
Publication of JP5781867B2 publication Critical patent/JP5781867B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、データ処理におけるデータ圧縮および復元の分野に関する。
現代のプロセッサの処理力の増加にともない、処理することができるデータの量もまた増加している。この増加するデータ量の異なるデバイス間の送信は独自の問題を呈し、これらの問題には、種々の異なる圧縮方法を使用して対処している。これらの圧縮方法によって、データを送信前により小型の形態に圧縮し、データが必要な場合には受信の時に復元することができる。
データを圧縮する1つの手段は、デルタ圧縮である。例えば、表示される画像を表すデータのストリームでは、概して、2つの隣接データ項目間の差は極めて小さいことがわかっており、従って、各データ項目を送信するよりはむしろ、単純に第1のデータ項目を送信し、その後、前の値との差を表す値を送信する方がより効率的である場合がある。値が類似している場合には、この手段で明らかに少ない値を送信することができる。
しかしながら、例えば、画像データがストリームとして送信されている場合に問題が発生し、画面の異なるタイルからのデータが任意の順序で発生する可能性がある。その性質上、デルタ圧縮は、それらを基にデルタが計算されるデータ項目が類似している場合にのみ効率的である。従って、画像データストリームでは、デルタは、例えば、データセットの中で隣接している、関連データ項目間で計算されるべきである。これらの値は、データストリームの中で、互いの近くに現れないことがあり、従って、デルタ値を計算するために、以前に受信したデータ項目を記憶するデータストアが必要とされる。任意の順序でアクセスすることができる、何千から何百万のデータセットがある場合、非常に大量の以前に受信したデータが記憶されているのでない限り、必要な関連値を記憶しなくてもよい。
第1の態様から見ると、本発明は、複数のデータ項目を備えるデータストリームを受信し、圧縮されたデータストリームを出力するためのデータ圧縮器を提供し、該データ圧縮器は、該データストリームを受信するためのデータ入力部と、圧縮されたデルタ値を生成するためのデルタ値計算機であって、該データ入力部から該複数のデータ項目を受信するように構成され、該受信されたデータ項目の関連データ項目が、データストアに記憶されているかどうかを判定するために、該受信されたデータ項目のうちの少なくともいくつかが、該データストアにアクセスするように構成され、記憶されている該関連データ項目に応じて、該データストアから該関連データ項目を検索し、該受信されたデータ項目および該関連データ項目からデルタ値を計算し、かつ該デルタ値を出力し、該データストアに記憶されていない該関連データ項目に応じて、該受信されたデータ項目および所定の値からデルタ値を計算し、該デルタ値を出力する、デルタ値計算機と、該データ入力部で受信された該複数のデータ項目を記憶するためのデータストアとを備え、該データ圧縮器は、該データストアで該複数のデータ項目の記憶部を制御するためのデータストアコントローラであって、該データ入力部でのデータ項目の受信に応じて、該データストアにアクセスし、記憶場所が該データ項目に割り当てられているかどうかを判定するように構成され、割り当てられている場合には、該割り当てられた記憶場所に該データ項目を記憶し、割り当てられていない場合には、該データ項目に記憶場所を割り当て、該割り当てられた記憶場所に記憶されたいかなるデータも排除および処分し、該割り当てられた記憶場所に該データ項目を記憶するように構成される、データストアコントローラをさらに備える。
本発明では、隣接する値がデータセットまたはオブジェクト内で互いに関連しないように、いくつかのデータストリームとともに、任意の順序で受信されたデータ項目がある場合があることを認識している。2つのデータ項目が互いに類似する場合、データ項目間のデルタ値の形成は、受信したデータストリームを圧縮するようにのみ機能し、これは概して、2つのデータ項目がおそらくデータセットの中で隣接し互いに関連する場合に発生する。しかしながら、データストリームが任意の順序で受信されたデータ項目を備える場合、データストリームの中の隣接するデータ項目は関連しない。データセットの中で互いに関連するデータ項目間のデルタ値を形成することを可能にするためには、新しい値が受信されると、関連する値をデータストアから読み出し、対応するデルタ値を計算することができるように、以前に受信した値を記憶するデータストアが必要とされる。しかしながら、データストリームが任意の順序で受信される多くのデータ項目を備える場合、データストアは記憶された関連する値があることを保証するために、非常に大きい必要があるであろう。
データストアが、キャッシュなどにアクセスするのが速いデータストアである場合、容量当たりでは高価であり、非常に大きなデータストアを有するのは有益ではない。より小さなデータストアが、より安価なメモリとともに使用される場合、システムの待ち時間は、関連するデータ項目をメモリから読み込む必要があるかどうかにより、これはシステムの待ち時間が一定ではなく、読み込まれる実際のデータ項目によることを意味し、従って、入力データのスループットは一定とはなり得ない。
本発明は、関連データ項目が記憶されていない場合、「デルタ値」を所定の値から計算することを可能にすることによって、この問題に対処する。従って、新しいデータ項目が受信されると、関連データ項目が記憶されているかどうかが判定され、記憶されている場合には、デルタ値がその関連する値から計算される。しかしながら、記憶されていなかった場合には、デルタ値は記憶された所定の値に関して単純に計算される。この値は、実際のデータ項目が出力される場合にはゼロであってもよく、またはデータ項目の計算された統計的平均であってもよい。これによって、記憶された関連する値があってもなくても、デルタ値を同一の待ち時間で計算することができる。従って、データの一定のスループットを得ることができ、いくつかの状況では、関連データ項目が記憶されていない場合、データは圧縮されないか、またはそれほどは圧縮されないだけである。
データストアは、忘れ易い(forgetful)記憶部であり、そのため新しいデータ項目が受信されると、記憶場所がそれに割り当てられているかどうかを判定する。割り当てられている場合には、値はその場所に記憶され、割り当てられていない場合には、別の記憶場所が排除され、データが処分され、新しい値がそこに記憶される。システムが記憶されていない関連データ項目に対処することができるため、これを行うことが可能であり、従って、記憶された値を上書きすることでエラーが発生することはなく、単にあまり効率的に実行されない将来の値を圧縮するという結果になる場合がある。
概して、デルタ値は受信したデータ項目とその関連する値または所定の値との差として計算されることに留意すべきである。この差は単純な減算であるかもしれず、または2つの値の間の相違を判定する別の方法である場合もある。
いくつかの実施形態では、該データストリームの中の該複数のデータ項目は、複数のデータオブジェクトのうちの1つに属するとしてそれぞれ分類され、該データオブジェクトは、複数のデータ項目をそれぞれ備え、該データストアに記憶される該データ項目は、該データオブジェクトを識別する、それらと関連付けられる識別子を備え、該データストアコントローラは、該データストア内の該記憶場所を該データオブジェクトに割り当てるように構成される。
本発明の実施形態は、いくつかのデータオブジェクトを有するデータストリームとの使用に特に適している。複数のデータオブジェクトがある場合に、同一のデータオブジェクト内のデータ項目が互いに関連する一方で、他のデータオブジェクトの中のデータ項目は、概して互いに関連しない。従って、データストリームの中の隣接するデータ項目が、異なるデータオブジェクトに由来する場合、データ項目間のデルタ値を形成しても、データは圧縮されない。そのため、データ項目がデータオブジェクトに属するとして識別することができ、データストアがデータオブジェクトに記憶場所を割り当てる場合には、便利である。従って、データストア内でこれらの識別子から関連する値を識別することができ、対応するデルタを計算することができる。データストリームがよく定義された書式を有する場合には、データストリームの中のデータ項目は、それぞれ識別子ビットを有する必要はないが、データストリームの中の位置、および、おそらくそのデータオブジェクトの単一の識別子ビットから、特定のデータオブジェクトに属するとして識別することができる。
いくつかの実施形態では、該関連データ項目は、該データストアに記憶されていると判定し、該デルタ値の計算のために、該関連データ項目を読み出すのに応じて、該データストアコントローラは、該同一のデータオブジェクトに割り当てられている該記憶場所に該データ項目を記憶し、該関連データ項目を排除および処分するよう構成されるように、該データ項目および該関連データ項目は、該同一のデータオブジェクトに属する。
いくつかの実施形態では、記憶場所がデータオブジェクトに割り当てられ、従って、データストアの中の記憶場所が、すでにそのデータオブジェクトに割り当てられている場合に、データ項目が受信されると、関連データ項目がデータストアに記憶され、デルタをその後計算することができ、これが終了すると、受信されたデータ項目をこの割り当てられた記憶場所内に記憶することが可能となり、記憶されていたデータ項目は排除し処分することができる。関連する値は、デルタを計算するために使用されると、もはや必要ではなくなり、従って、関連する値は、関連する、同一のデータオブジェクトから受信された次のデータ項目に関連する値で上書きされる。
いくつかの実施形態では、該データオブジェクトのそれぞれは、複数のデータセクションを備え、該データセクションのそれぞれは、該データストリーム内の複数の隣接するデータ項目を備え、該データストアコントローラは、該対応するデータオブジェクトに割り当てられている該記憶場所のうちの1つに、データセクションを記憶するように構成される。
いくつかの実施形態では、該データストアコントローラは、該データセクションのうちの1つの第1のデータ項目の受信に応じて、該記憶場所が、該データオブジェクトに割り当てられるように、同一のデータオブジェクトからのデータセクションが、該データストアの中の記憶場所に記憶されているかどうかを判定し、記憶されている場合には、該受信されたデータセクションの中の少なくとも1つのデータ項目、および該記憶されたデータセクションの中の少なくとも1つの関連データ項目から、該デルタ値計算機で少なくとも1つのデルタ値を計算し、それから該割り当てられた記憶場所から該記憶されたデータセクションを排除し、該割り当てられた記憶場所に該受信されたデータセクションを記憶し、記憶されない場合には、該記憶場所のうちの1つからデータを排除および処分し、該記憶場所を該データオブジェクトに割り当て、該割り当てられた記憶場所に該データセクションを記憶するように構成される。
新しいデータセクションが受信されると、データストアコントローラは、同一のデータオブジェクトからのデータセクションが、データストアに記憶されているかどうかを確認し、記憶されている場合には、受信したデータセクションの対応するデータ項目でデルタを形成するために、データセクションの中のデータ項目のうちの少なくとも1つが使用され、受信したデータセクションで以前に記憶したものを上書きする。
いくつかの実施形態では、データストリームは隣接するデータ項目を有するデータセクションを備え、データストアコントローラは特定のデータオブジェクトに割り当てられている各記憶場所に、データセクション全体を記憶する。
いくつかの実施形態では、該データ項目のうちの少なくとも1つに対して、該関連データ項目は、同一のデータセクション内にデータ項目を備える。
デルタは、異なるデータセクションだが、同一のデータオブジェクト内の関連データ項目から計算することができる。またデルタは、データセクション内のデータ項目が関連してもよいように、かつそれらの間のデルタ値がその圧縮版となるように、データセクション内で計算することができる。
いくつかの実施形態では、該データ項目のうちの少なくとも1つに対して、該関連データ項目は、同一のデータオブジェクトに属する、以前に受信したデータセクションの中の対応する位置からのデータ項目を備える。
関連データ項目はまた、同一のデータオブジェクトだが、異なるデータセクションからの対応するデータ項目とすることもできる。このように、データセクションは互いにリンクすることが可能で、データセクション内の異なるデータ項目もまた、これらのデルタ値によってリンクすることができる。その後、データは適切に圧縮され、また受信した値から復元することもできる。
いくつかの実施形態では、同一のデータオブジェクトに属し、該識別子によって識別される該データ項目は、同一の宛先に向かう。
データオブジェクトは、それらが何らかの形で互いに関連するデータを備える場合、いくつかの異なるデータセットであってもよいが、いくつかの実施形態では、特定の宛先に向かうのはデータセットである。
いくつかの実施形態では、該少なくとも1つのデータストリームは、少なくとも1つの画像データのストリームを備え、該データオブジェクトは、画像表示にタイルを描くための画像コマンドのリストを備え、該データセクションは、該画像コマンドのうちの1つを備え、該データ項目は、該画像コマンド内にフィールドを備える。
画像データのストリームは、本発明の実施形態による圧縮に特に適している。画像表示はタイルから形成され、各タイルは画像コマンドのリストを使用して描かれる。従って、タイルを描くための画像コマンドのリストは互いに関連し、デルタ値は同一のタイルのリストの間、およびコマンド内のフィールド間でも形成することができる。しかしながら、概して、異なるタイルのリストの間におけるデルタ値の形成では、データの圧縮は提供されない。従って、このような画像データストリームは互いに関連する多くのデータ項目を有し、そうではない多くおよびデータ項目は任意の順序で配設される。本発明の実施形態では、忘れ易いデータストアを使用し、絶対値を使用して圧縮することを可能にし、これにより、関連データ項目が記憶されていない場合でも、このような全く異なるデータの一定のスループットを可能にする。
データストアはいくつものものとする可能性があるが、いくつかの実施形態では、データストアはデータキャッシュを備える。キャッシュは迅速かつ容易にアクセスできる、データを記憶する便利な手段である。面積当たりでは高価であり、それゆえサイズが限定されるが、しかしながら、関連する値が記憶されていようといないと、忘れ易いキャッシュを使用してデータ項目を計算できるということは、適度なサイズのキャッシュおよび圧縮器を使用することが可能で、さらに正しく機能することを意味する。
キャッシュがデータストアである場合、データキャッシュの各ラインは、記憶するためにラインが割り当てられているデータオブジェクトを識別するための識別値を有する。
いくつかの実施形態では、該データオブジェクトは、画像スクリーンにタイルの階層的な層を描くための画像コマンドのリストを備え、該データストアコントローラは、該データセクションのうちの1つの第1のデータ項目の受信に応じて、同一のデータオブジェクトからのデータセクションが、該データストアの中の記憶場所に記憶されているかどうかを判定し、同一のデータオブジェクトが、該データストアの中の記憶場所に記憶されていないと判定するのに応じて、同一のタイルだが異なる階層レベルからのデータオブジェクトを識別し、該受信されたデータセクションの中の少なくとも1つのデータ項目、および該記憶されたデータセクションの中の少なくとも1つの関連データ項目から、該デルタ値計算機で少なくとも1つのデルタ値を計算し、該関連データ項目の源を識別する指標とともに該デルタ値を出力するように構成される。
データストリームが階層的な画像表示用のデータを備える場合、デルタを形成するための関連する値は、同一のタイルの異なる階層的な層に由来することができる。これによって圧縮がもたらされるが、デルタ値を受信する時に、先行する層はいつも復元器で受信されているため、復元も可能となる。
本発明の第2の態様は、データ圧縮器によって出力される値を受信するための入力部と、該出力値を固定サイズのデータパケットに圧縮するように構成される書式設定回路であって、該データパケットは、複数の書式のうちの1つを有し、該書式のそれぞれは、該データパケット内の識別子ビットによって識別されている、書式設定回路と、該データパケットを出力するための出力部とを備え、該複数の書式のうちの1つは、大きすぎて該データパケットに記憶できない出力値の一部分を記憶することによって、データパケットの記憶容量を拡張するための拡張書式を備え、該書式設定回路は、大きすぎて該データパケットに記憶できない該出力値の受信に応答して、該データパケットと、該拡張書式を有する少なくとも1つのさらなるパケットとの間で該出力値を分割し、該データパケットおよび該少なくとも1つの拡張データパケットを該出力部で出力するようにデータフォーマッタを提供する。
いくつかのデータ圧縮器、特に本発明の第1の態様のデータ圧縮器は、特に効果的にいくつかのデータ項目を圧縮することができるが、一方でほかのデータ項目は、それほどには良く圧縮されず、実際には時に全く圧縮されない。このデータを送信するためにさらに書式設定する時、これらのデータ項目を表すデータのサイズが大きく異なる場合があるため、これを効率的に行うのは困難である可能性がある。異なる長さのデータパケットを使用する場合には、各データパケットの開始および終了がどこであるかを示すために、符号化が必要である。代替として、一定の長さのデータパケットを使用することもできるが、これにより、送信される任意のデータの長さが異なるために、データの圧縮が非効率的になる可能性がある。効率的に圧縮されたデータを送信する時、圧縮されていないデータを収容するのに十分な大きさのパケットは、多くの空の空間を有する。本発明は、パケットの長さ、または開始および終了を示すために、ビットを使用する必要がないように、一定のデータパケットの長さを提供することによって、この問題に対処する。これらのデータパケットは、いくつかの書式のうちの1つを有し、書式は識別子ビットによって識別される。書式のうちの1つは、データパケットの記憶容量が小さすぎて出力値を記憶できない場合、この値の一部分を1つ以上の拡張書式パケットに置くことができるような、拡張書式である。このようにして、1つ以上の圧縮されたデータ項目を記憶するのに適切なサイズを有するデータパケットを使用することができ、効率的に圧縮されていない大きな値を送信する必要がある場合には、大きな値もこれらの拡張データパケットを使用して送信することができる。
いくつかの実施形態では、該受信された値は、デルタ値を形成するように、デルタ圧縮器によって圧縮された少なくとも一部のデータを備え、該複数の書式は、続くパケットが、所定の値に対するデルタ値、または以前に受信されたデータ項目に関係するデータを備えるデルタ値を備えるかどうかを示すための指標値と、該デルタ値のうちの少なくとも1つの少なくとも一部分とを備える、第1の書式と、該デルタ値のうちの少なくとも1つの少なくとも一部分を備える、第2の書式と、大きすぎて該第2の書式に記憶できない、該少なくとも1つのデルタ値の一部分を記憶するための、該拡張書式とを含む。
本発明の第2の態様の実施形態は、本発明の第1の態様の圧縮器からのデータを書式設定するのに特に適している。従って、データ書式パケットは、他のデータ項目に関連するデルタ値、および所定の値の減算によって形成されるデルタ値を処理することができる。このようにして、本発明の第1の態様の圧縮器によって出力される圧縮データは、一定の長さのデータパケットで記憶することができ、かつ別のデータ項目に関連するデルタ値、または所定の値に関連するデルタ値のいずれかとして識別することができ、このようにして、圧縮データは後に復元器によって認識し、再生成することができる。
いくつかの実施形態では、該第1の書式用の該指標値は、以前に受信したデータ項目のどれに関して前記デルタ値が計算されたのかという指標を提供する。
いくつかの実施形態では、該書式のそれぞれは、該指標値を記憶するための専用に設けられた指標ビットと、少なくとも1つのデータフィールドを記憶するための専用に設けられたビットとを備え、受信された該値は、該少なくとも1つのデータフィールドのうちの1つに対するデータをそれぞれ備える。
書式は、特定の書式およびそれから少なくとも1つのデータフィールドを示す、指標ビットを備える。デルタ値の少なくとも一部分を記憶するために使用される、各データフィールド。
いくつかの実施形態では、該データフォーマッタは、拡張される該データパケットの直前に、該拡張書式を有するデータパケットを出力するように構成される。
拡張書式パケットは、概して、拡張されるパケットより前に出力される。従って、いくつかの拡張パケットを出力することができ、別の書式パケットが受信されると、いかなる追加情報も必要とせずに、これらの拡張パケットはそのパケットに属することが理解される。従って、開始または終了の指標は必要ない。
本発明の第3の態様は、本発明の第2の態様に従うデータフォーマッタに連結された、本発明の第1の態様に従うデータ圧縮器を備えるシステムを備える。
本発明の第4の態様は、複数の値をそれぞれ記憶する固定サイズの複数のデータパケットを備える、圧縮されたデータのストリームを受信するための入力部であって、該データパケットは、複数の書式のうちの1つを有し、該複数の書式のそれぞれは、該データパケット内の識別子ビットによって識別され、該複数の書式のうちの1つは、大きすぎて関連データパケットに記憶できない少なくとも1つの出力値の一部分を記憶するための、拡張書式を備える、入力部と、該識別子ビットから該データパケットの該書式を識別し、該拡張パケットのうちの少なくとも1つに記憶されるデータを、該関連データパケットに記憶されるデータと組み合わせるための、データデフォーマッタと、該データを復元するためのデータ復元器とを備える、データ復元器を提供する。
本発明の第5の態様は、データ入力部で、複数のデータ項目を備えるデータのストリームを受信するステップと、データストアにアクセスし、受信されたデータ項目に関連するデータ項目が、該データストアに記憶されているかどうかを判定するステップと、記憶されている該関連データ項目に応じて、該データストアから該関連データ項目を読み出し、該受信されたデータ項目と該関連データ項目との差を備えるデルタ値を計算し、該デルタ値を出力するステップと、該データストアに記憶されていない該関連データ項目に応じて、該受信されたデータ項目と所定の値との差を備えるデルタ値を計算し、該デルタ値を出力するステップとを含み、記憶場所が該受信されたデータ項目に割り当てられているかどうかどうかを判定するために、該データストアにアクセスし、割り当てられていない場合、該データストア内の記憶場所を、該データ項目に割り当て、該記憶場所に記憶されているデータを排除および処分し、該割り当てられた記憶場所に該データ項目を記憶する、データを圧縮する方法を提供する。
本発明の第6の態様は、データ圧縮器によって出力される値を受信することと、該出力値を固定サイズのデータパケットにパックすることであって、該データパケットは、複数の書式のうちの1つを有し、該書式のそれぞれは、該データパケット内の識別子ビットによって識別され、かつ該データパケットを出力し、該複数の書式のうちの1つは、大きすぎて該データパケットに記憶できない、少なくとも1つの出力値の一部分を記憶することによって、データパケットの記憶容量を拡張するための拡張書式を備え、該書式設定回路は、大きすぎて該データパケットに記憶できない該少なくとも1つの出力値の受信に応答して、該データパケットと、該拡張書式を有する少なくとも1つのさらなるパケットとの間で該少なくとも1つの出力値を分割し、該データパケットおよび該少なくとも1つの拡張データパケットを該出力部で出力するように、圧縮されたデータを書式設定する方法を提供する。
本発明の第7の態様は、本発明の第6の態様に従う方法の前に、本発明の第5の態様に従う方法を含む、圧縮されたデータを圧縮し書式設定する方法を提供する。
本発明の第8の態様は、複数の値をそれぞれ記憶する固定サイズの複数のデータパケットを備える、圧縮されたデータのストリームを受信することであって、該データパケットは、複数の書式のうちの1つを有し、該複数の書式のそれぞれは、該データパケット内の識別子ビットによって識別され、該複数の書式のうちの1つは、大きすぎて関連データパケットに記憶できない少なくとも1つの出力値の一部分を記憶するための、拡張書式を備えることと、該識別子ビットから該データパケットの該書式を識別することと、該拡張パケットのうちの少なくとも1つに記憶されるデータを、該関連データパケットに記憶されるデータと組み合わせることと、該データを復元することとを含む、圧縮されたデータを復元する方法を提供する。
本発明の第9の態様は、本発明の第6、第7、または第8の態様に従う方法のステップを実行するよう、データプロセッサを制御するように、データプロセッサ上で動作される時に操作可能である、コンピュータプログラム製品を提供する。
本発明は、単に例としてのみ、添付の図面に図示するように、その実施形態を参照して、さらに説明されるであろう。
本発明の実施形態に従う、データ圧縮システムである。 本発明の実施形態に従う、データ復元システムである。 本発明の実施形態に従う、忘れ易いキャッシュである。 本発明の実施形態によって圧縮された画像コマンドである。 本発明の実施形態に従う、書式設定された圧縮データパケットの例である。 本発明の実施形態に従う、書式設定された圧縮データパケットの例である。 本発明の実施形態に従いデータを圧縮する方法を図示するフロー図である。 本発明の実施形態に従い、階層的なグラフィックの画像表示において画像データを圧縮する方法を図示するフロー図である。 本発明の実施形態に従い、データを書式設定する方法である。 本発明の実施形態に従い、データを復元する方法である。
図1は、本発明の実施形態に従う、データ圧縮システム10を示す。データ5のストリームはシステム10への入力部で受信され、その後、キャッシュ20内の記憶部を制御するキャッシュコントローラ22を有する、忘れ易い20に送信される。データ項目を受信すると、キャッシュコントローラ22は、受信されたデータ項目に関連する値が、キャッシュ20に記憶されているかどうかを確認し、記憶されている場合には、これをデルタ圧縮器30に出力する。その後、キャッシュコントローラ22は、キャッシュ20内の記憶場所のいずれかが、この特定のデータ項目に割り当てられているかどうかを確認する。割り当てられている場合には、割り当てられた場所にデータ項目を記憶し、割り当てられていない場合には、データ項目に場所を割り当て、そこにデータ項目を記録し、場合によりそれを行う時に別のデータ項目に上書きする。ラウンドロビン方式などのいくつかの既知の手段で、上書きのためにデータ項目の選択を行うことができる。
データ項目は、並行してデルタ圧縮器30およびキャッシュ20に送信される。従って、デルタ圧縮器30は、データ項目、および場合によって、キャッシュ20に記憶されている場合には関連データ項目を受信する。デルタ圧縮器30は、受信したデータ項目とその関連する値との差、または関連する値が記憶されていない場合には、受信したデータ項目とレジスタ32に記憶されている所定の値との差を計算することによって、受信したデータ項目を圧縮する。レジスタ32はいかなる値を記憶してもよい。レジスタは、この値に関して計算されたデルタ値が、実際には圧縮されていない受信データ項目である場合には、0を記憶してもよく、またはより一般的には、受信したデータ項目の統計的平均値を記憶する。従って、概して、受信したデータ項目から平均値を減算することによって、出力された値はより小さくなり、そのためより少ないビットを取る。その後、出力データはデータフォーマッタ40に送信される。
データフォーマッタ40は、受信した圧縮されたデータ項目を調べる、書式設定回路42を有し、そのデータ項目を一定サイズのデータパケットにパックする。これらのデータパケットは、異なる書式を有する。いくつかの大きいがまれに変化するデータフィールドを符号化し、後続のデータ項目が絶対モードにあるかまたは相対モードにあるかを示すのに使用することができる、指標ビットを有する、汎用コマンドまたはパケットがある。この指標ビットは、次のパケットがレジスタ32に記憶されている所定の値に関するデルタ値を含むこと、または次のパケットが関連データ項目に関するデルタ値を含むことを示すために使用される。デフォルト設定で、すべてのコマンドは先行したコマンドに関連しているが、汎用コマンドの指標ビットは、所定の一定の値に関連するよう、現在のコマンドの残りに再度バイアスをかけるように使用することができる。このようにして、フォーマッタは一定サイズのデータパケットで受信された、異なる形で圧縮されたデータ項目を出力することができる。これらの異なる形で圧縮された値の異なるサイズに対処することを可能にするために、データ項目のセット全体を符号化することが可能な基本パケット、および値が特にあまり良く圧縮されず、さらなるスペースを必要とする場合に、追加の値を記憶することが可能な、これらの基本パケットの拡張子も存在する。このようにして、データパケットのサイズは、最悪の圧縮されていないデータ項目を取るほど十分に大きい必要はないが、概して良く圧縮されたデータ項目を取るサイズとすることができ、拡張パケットを値の残りを送信するために使用することができる。これらの異なる書式については、図5でより詳細に説明する。
図2は、本発明の実施形態に従う復元システム50を、図式形式で示す。一定サイズのデータパケット45が圧縮システム10から受信され、デフォーマッタ60がパケット内の識別子から各パケットの書式を識別し、その後、拡張パケットをそれらが属するパケットと組み合わせ、圧縮されたデータ項目を再形成する。次いで、これらは元々圧縮システム10に入っていたデータ5のストリームを生成するのに必要な計算を行う、復元器70の中に置かれる。
上記の復元システムは、全種類のデータのストリームに使用できるが、特定のタイルを描くためのコマンドリストとして形成されるデータのタイルがある場合、画像データに対して特に有用である。従って、各タイルはその特定のタイルを描くためのコマンドのリストを有し、各コマンドは、複数のデータ項目が関連するタイルを識別する識別子とともに、複数の隣接するデータ項目として送信される。
図3は、このようなコマンドデータを記憶する、図1の忘れ易いキャッシュ20をより詳細に示している。キャッシュの各ラインが、画像コマンドを記憶する。そのコマンドが関連するコマンドのタイルまたはリストを識別する、ストリームの中の各コマンドと関連付けられたデータオブジェクト/リストの識別子があり、これらはデータ項目と関連付けられたタグとして、キャッシュに記憶される。これらのリスト識別子は、以前のデータ項目が既にキャッシの中にあるかどうかを確認するために使用される。この例では、各リストまたはタイルは、タグの中の識別子によって識別される、割り当てられているラインを有する(図示せず)。従って、そのリストからの新しいコマンドが受信されると、適切なデルタ計算のために値が読み出され、その後、新しく受信された値が、その特定のリストに割り当てられているキャッシュのこのラインに記憶される。
これに関して、階層レベルはタグの一部として明確に記憶される可能性があるか、または、タイルの位置および階層レベルが、単一の識別子フィールドに数学的に組み合わされる可能性がある。階層レベルを分離したままにすることによって、同一のタイルだが異なる階層レベル用のリストの間でデルタを行うのがより容易になる。
図4は、このようなコマンドの性質をより詳細に示しており、従って、タイプフィールドがあってもよく、どのコマンドが最初に実行されるべきであるかについての情報を提供するタイムスタンプがあり、図にはインデックス1、インデックス2、およびインデックス3と印された異なるフィールドがあり、これらは異なる基本コマンドに関連し、基本コマンドは特定の基本要素を描くためのコマンドであってもよい。また、コマンドが関連するのはどれかを識別する識別子もある。図4はまた、デルタを形成するために、どのように異なるフィールドが組み合わせられているかも示している。この実施形態では、デルタは各コマンド内の2つのフィールドの間、および同一のタイルからのコマンドの対応するフィールドの間で形成される。コマンドの各リスト内では、対応するフィールドが類似の頂点インデックスを参照する可能性が高く、従ってコマンド内の対応するフィールドが類似するため、これはデータを圧縮する効率的な手段である。さらに、ともに描かれる基本要素は、類似のサイズで類似の画面座標となる可能性が高く、そのため、同一のリストに収まることが多い。また、基本データセットはしばしばソフトウェアツールによって最適化され、そのため、描画用にともに出された基本要素は、類似の頂点インデックス、および比較的まれに変化するグローバル状態を有する可能性が高い。
従って、示している例では、コマンド間圧縮およびコマンド内圧縮が使用されている。インデックス3用のデルタは、キャッシュ20から検索された関連するコマンドのインデックス3から計算され、インデックス2用のデルタはインデックス3に対して計算され、インデックス1用のデルタはインデックス2から計算される。開始時、または記憶された関連する値がない場合には、インデックス3用のデルタは、図1のレジスタ32に記憶されている所定の値に対して計算される。
図5は、データフォーマッタ30によって出力される、データパケットのいくつかの書式の例を示している。データパケットは、それらがどの書式であるかを識別する識別子を有する。従って、この特定の例では、拡張識別子および基本識別子、ならびに汎用識別子があり、このパケットは、何らかのまれに変化するグローバル状態を設定し、続くパケットが所定の値に対するデルタ値である時を示すように使用される。
図6は、出力されている3つのデータ項目、フィールドA、フィールドB、およびフィールドCとともに例示的な圧縮されたデータストリームを示している。フィールドCは、あまり良く圧縮されていない一方、フィールドAおよびフィールドBは、それほど良くはないが適度に圧縮されている。3つすべての値が良く圧縮されていた場合には、単一の基本パケット80に適合していたであろう。しかしながら、これはそうではなく、拡張パケット82は、これらのフィールドの余分なビットを収容するために使用されている。これらの拡張パケットは、共通の拡張パケット書式を有し、従って、識別子ビットをほとんど必要としない。拡張パケットが最初に受信され、基本要素を受信すると、値が1つに組み合わされる。
従って、この可変長の符号化法では、同時に複数のデータフィールドの可変長データ項目を符号化するように、少数の固定長圧縮パケットを使用する。具体的には、本発明の実施形態では、各基本要素を198ビットにまで符号化するために、32ビットパケットの4つのタイプを使用する。異なる書式は、何らかのまれに変化するグローバル状態を設定し、圧縮器の中のキャッシュの忘れ易さ度を操作するように、復元器のデルタ値を任意選択的にリセットすることを可能にする汎用書式を含み、すなわち、直後に続くパケットのデルタが、関連するデルタであるかどうか、または完全値に関するデルタであるかどうかを識別することができる。
また、ほとんど変化しない幅広のデータ項目の上位ビットを供給する、特殊用途書式(図示せず)もあり、圧縮された値が十分小さい場合には、単一のコマンドの中の基本要素全体を符号化することができる基本書式が存在する。
また、基本書式のデータフィールドすべての範囲を拡張するように使用される、基本拡張書式もある。
汎用書式および特殊用途書式は非常にまれに使用されるが、それらによって非常に幅広のデータ項目の効率的な設定が可能となり、また、デルタ圧縮を恣意的に流れの中ほどでリセットすることを可能にする。
基本要素および基本拡張書式は、データストリームの最も頻繁に変化する部分を、効率的に符号化する新規の手段を提供する。書式内の各フィールドに割り当てられたビット数は固定されているが、必ずしも利用可能なビットの均等な分割ではない。ビットの正確な配分は、いくつかのテストデータセットの統計的分析によって判定される。
圧縮中、デルタ値が計算され、すべてのフィールドを符号化するのに必要なビットの最小数が判定される。フィールドのいずれかが、単一の基本書式で表すことができない場合、各フィールドのできるだけ多くのビットが、その後出力される拡張書式の中に置かれる。デルタ値の残りのビットは、出力されたビットの数によって右へ移動し、その後、残りの値すべてが次いで出力される基本コマンド書式に適合するまで、プロセスが繰り返される。
この過程によって、デルタフィールドすべての可変長のデルタ値は、単一の基本書式に優先するこれらの拡張書式のどれにも細分化されないか、または1つ以上に細分化される。最上位ビットを最初に出力することによって、これらの拡張書式用のシーケンス終了フラグを符号化するか、または第4のコマンドを構成する拡張書式の数を特定するか、いずれかを行う必要性が取り除かれる。これによってメモリの帯域幅、すなわち電力を節約し、圧縮器および復元器の両方で非常に単純なハードウェアが許容される。
リスト識別子は圧縮されたコマンドでは出力されず、むしろフォーマッタがコマンドリストを異なるメモリアドレス領域に分け、それによってリスト識別子を圧縮する必要が避けられることには留意すべきである。
図7は、本発明の実施形態に従い、データを圧縮する方法を図示するフロー図を示す。データストリームはデータ圧縮器で受信され、いくつかのデータ項目を含む各データセクションが順番に考慮される。データセクション内の異なるデータ項目間のデルタ値が計算され、同一のデータオブジェクトからのデータセクションがデータストアに記憶されているかどうかが判定される。記憶されている場合、記憶されているデータ項目のうちの少なくとも1つと、受信したデータセクションの中の対応するデータ項目との間のデルタ値が計算される。その後、受信したデータセクションは、同一のデータオブジェクトに対するデータセクションが現在記憶されている場所の中のデータストアに記憶される。この記憶場所は既にそのデータオブジェクトに割り当てられており、従って、このデータセクションに対して正しく割り当てられている。さらに、このデータオブジェクト用のデータ項目が、同一のデータオブジェクトからデータセクション用のデルタ値を計算するために必要な場合、この新しく記憶されるセクションは必要なデータ項目を含む。
同一データオブジェクトからのデータセクションが、データストアに記憶されていなかった場合、デルタ値は、データセクションの中のデータ項目のうちの少なくとも1つと、記憶されている定数との間で計算される。このステップは、データストアが以前に受信したデータ項目のすべてを記憶しないようにすることができる。概して、記憶された定数でデルタ値を計算することによって、値の効率的な圧縮が提供されるが、すべての受信されたデータ項目を記憶することを必要とせずに、デルタ値をいつでも計算することができることを意味しない。その後、受信したデータセクションは、データストアの記憶場所に記憶される。その特定のデータオブジェクトに割り当てられている記憶場所がないため、データストアに既に記憶されているデータセクションのうちの1つを上書きし、その後、この記憶場所がこの新しいデータオブジェクトに割り当てられている。どのデータセクションを上書きすべきかを選択する時、キャッシュコントローラは、どれがデータストアに記憶された最も古いデータセクションかを判定するなどの、いくつかの既知のルーティンのうちの1つを使用する。
フロー図では、ステップがこの特定の順序で行われるように示しているが、データセクション内のデルタ値は、データセクション間のまたは定数に関するデルタ値の後に計算することができるため、ステップは異なる順序で行うことができることには留意するべきである。
図8は、階層的画像表示用のデータを圧縮する方法を図示する、フロー図を示す。タイルの一部分を描くための画像コマンドの形態であるデータセクションが、データストリームで受信される。受信したデータ項目のうちの少なくとも2つの間のデルタ値が計算され、同一のデータオブジェクトおよび同一のデータ階層からのデータセクションが、データストアに記憶されているかどうかが判定される。言い換えると、コマンドの同一リストおよび画像タイルの同一レベルからの別のコマンドがあるかどうかを判定する。別のコマンドがある場合、記憶されたデータ項目と、受信したデータセクションの中の対応するデータ項目との間で、デルタ値が計算される。記憶されている同一レベルおよびタイルからのデータセクションがない場合、同一タイルだが異なる階層レベルからのデータセクションがあるかどうかが判定される。データセクションがある場合、この記憶されたセクションからデルタ値が計算される。同一タイルだが異なる階層レベルからの対応するデータ項目間のデルタ値を計算することで、概して良い圧縮が提供され、デルタを形成することができる以前の値を発見する可能性が増加することが分かっている。しかしながら、何らかの指標は、別の階層レベルに関係することを示す圧縮された値で、出力される必要がある。そのタイルに対してデータストアに記憶されているコマンドが全くない場合、受信したデータ項目と記憶されている定数との間でデルタ値が計算され、受信したコマンドはある既知の方法で選択されるデータストアの中の記憶場所に記憶される。同一のデータ階層レベルのタイルからのコマンドが、データストアに存在した場合、このコマンドは新しく受信したコマンドによって上書きされる。異なるデータ階層レベルのタイルからのコマンドが、データストアに存在した場合、デルタが計算されると、スペースまたは最近には割り当てられていない多くのラインがあれば、1本のラインがこのコマンドに割り当てられている
図7に関しては、方法のステップは、これが適切な場合、異なる順序で行うことができる。
図9は、本発明の実施形態に従い、圧縮されたデータをデータパケットに書式設定する方法を図示するフロー図を示している。圧縮された値が受信され、値が別のデータ項目に関するデルタ値であるかどうかが判定される。デルタ値でない場合、デルタ値が定数に対して形成されることをシステムに示し、受信した圧縮値を含むように、汎用パケットが使用され、この値および指標はこの汎用パケットにパックされ、汎用パケットの中に十分なスペースがない場合、汎用拡張パケットにもパックされる。その後、形状に関係する他のデルタ値が基本要素内にパックされ、必要な場合には拡張パケットが基本要素にパックされる。これらのデルタ値は、他のデータ値に関係するデルタ値であってもよく、またはそれらのいくつかは、定数に関係する絶対値であることができ、後者の場合、汎用パケットの指標がこれを示す。その後、パケットは汎用パケット、汎用パケットの拡張子(拡張が必要な場合)、基本パケットの拡張子(拡張が必要な場合)、およびその形状のためのコマンドバンドルの最後を示す基本パケットとして出力される。
値が別のデータ値に関して形成されたデルタ値である場合、これらの値が基本データパケットに適合するかどうかが判定される。適合する場合、値はこの基本データパケットにパックされ出力される。適合しない場合、値は、少なくとも1つの基本データパケットの拡張子および基本データパケット、ならびに拡張パケットにパックされ、その後基本データパケットが出力される。基本パケットの出力は、コマンドバンドル用のデータの最後を示す。さらに、その後、受信される値が考慮される。
従って、汎用パケットは、デルタ値が定数に関して形成されるという指標を提供し、このようなパケットの不在の時には、すべてのデルタ値は、別のデータ値に関するデルタ値であると推定される。
図10は、本発明の実施形態に従い、データを復元する方法を図示するフロー図を示す。最初に、固定サイズの複数のデータパケットを備える、圧縮されたデータのストリームが受信される。各パケットが分析され、パケットの書式が、パケット内にあった書式の識別子から識別され、その後、何のデータ項目がデータパケットに記憶されているかが正確に判定される。データ項目の異なる部分が複数のパケットに記憶されてもよく、これらは圧縮されたデータ項目を形成するように組み合わされる。その後、他のデルタ値または絶対値のどちらが関連しているかが判定され、次いで、元のデータ項目を生成するように復元される。
本発明の種々のさらなる態様および機能は、付属の請求項に定義されている。前に記載した本明細書の中の実施形態に対して、本発明の範囲から逸脱することなく、種々の変形を行うことができる。
本発明の例示的実施形態が、添付の図面を参照して、本明細書に詳細に記載されているが、本発明は、それらの正確な実施形態に限定されず、添付の特許請求の範囲によって定義される本発明の精神および範囲から逸脱することなく、当業者によってそこで種々の変更および変形が達成される可能性があることが理解されるものとする。
5 データ
10 データ圧縮システム
20 キャッシュ
22 キャッシュコントローラ
30 デルタ圧縮器
32 レジスタ
40 データフォーマッタ
42 書式設定回路
45 データパケット

Claims (12)

  1. 複数のデータ項目を備えるデータストリームを受信し、圧縮されたデータストリームを出力するためのデータ圧縮器であって、
    前記データストリームを受信するためのデータ入力部と、
    圧縮されたデルタ値を生成するように構成されるデルタ値計算回路であって、前記データ入力部から前記複数のデータ項目を受信するように構成されるとともに、前記受信されたデータ項目のうちの少なくともいくつかに対して、データストアにアクセスし、前記受信されたデータ項目の関連データ項目が、前記データストアに記憶されているかどうかを判定するように構成され、
    前記データストアに前記関連データ項目が記憶されている場合には、前記データストアから前記関連データ項目を読み出し、前記受信されたデータ項目および前記関連データ項目からデルタ値を計算し、前記デルタ値を出力するように構成され、
    前記データストアに前記関連データ項目が記憶されていない場合には、前記受信されたデータ項目および所定の値からデルタ値を計算して、前記デルタ値を出力するように構成される、デルタ値計算回路と、
    前記データ入力部において受信された前記複数のデータ項目を記憶するための前記データストアと、
    前記データストアに前記複数のデータ項目を記憶するように構成されるデータストアコントローラ回路であって、前記データ入力部におけるデータ項目の受信に応じて、前記データストアにアクセスし、記憶場所が前記データ項目に割り当てられているかどうかを判定するように構成され、
    記憶場所が前記データ項目に割り当てられている場合には、前記割り当てられた記憶場所に前記データ項目を記憶するように構成され、
    記憶場所が前記データ項目に割り当てられていない場合には、前記データ項目に記憶場所を割り当て、前記割り当てられた記憶場所に記憶されたいかなるデータも排除および処分し、前記割り当てられた記憶場所に前記データ項目を記憶するように構成される、データストアコントローラ回路と、を備え、
    前記データストリームの中の前記複数のデータ項目は、複数のデータオブジェクトのうちの1つに属するようにそれぞれ分類され、前記データオブジェクトのそれぞれは、複数のデータ項目を備え、前記データストア内の各記憶場所は、前記データオブジェクトのうちの1つに割り当てられ、前記データオブジェクトを識別する識別子を備え、
    前記データストアコントローラ回路は、前記データストア内の前記記憶場所を前記データオブジェクトに割り当てるように構成され、前記データ項目および前記関連データ項目は、前記同一のデータオブジェクトに属し、前記関連データ項目が前記データストアに記憶されていると判定して前記デルタ値の計算のために前記関連データ項目を読み出す場合には、前記データストアコントローラ回路が、同一のデータオブジェクトに割り当てられている前記記憶場所に前記データ項目を記憶し、前記関連データ項目を排除および処分するよう構成されることを特徴とする、データ圧縮器。
  2. 前記データオブジェクトのそれぞれは、複数のデータセクションを備え、前記複数のデータセクションのそれぞれは、前記データストリーム内の複数の隣接するデータ項目を備え、前記データストアコントローラ回路は、前記対応するデータオブジェクトに割り当てられている前記記憶場所のうちの1つに、データセクションを記憶するように構成されることを特徴とする、請求項1に記載のデータ圧縮器。
  3. 前記データ項目のうちの少なくとも1つに対して、対応する関連データ項目は、同一のデータセクション内にデータ項目を備えることを特徴とする、請求項2に記載のデータ圧縮器。
  4. 前記データ項目のうちの少なくとも1つに対して、対応する関連データ項目は、同一のデータオブジェクトに属する以前に受信したデータセクションの中の対応する位置にデータ項目を備える、請求項2に記載のデータ圧縮器。
  5. 前記データストアコントローラ回路は、前記データセクションのうちの1つの第1のデータ項目の受信に応じて、前記記憶場所が、前記データオブジェクトに割り当てられるように、同一のデータオブジェクトからのデータセクションが、前記データストアの中の記憶場所に記憶されているかどうかを判定するように構成され、
    同一のデータオブジェクトからのデータセクションが、前記データストアの中の記憶場所に記憶されている場合には、前記受信されたデータセクションの中の少なくとも1つのデータ項目、および前記記憶されたデータセクションの中の少なくとも1つの関連データ項目から、前記デルタ値計算回路で少なくとも1つのデルタ値を計算し、その後前記割り当てられた記憶場所から前記記憶されたデータセクションを排除し、前記割り当てられた記憶場所に前記受信されたデータセクションを記憶するように構成され、
    同一のデータオブジェクトからのデータセクションが、前記データストアの中の記憶場所に記憶されていない場合には、前記記憶場所のうちの1つからデータを排除および処分し、前記記憶場所のうちの1つを前記データオブジェクトに割り当て、前記割り当てられた記憶場所のうちの1つに前記受信されたデータセクションを記憶するように構成されることを特徴とする、請求項4に記載のデータ圧縮器。
  6. 同一のデータオブジェクトに属し、前記識別子によって識別される前記データ項目は、同一の記憶場所に記憶されることを特徴とする、請求項1に記載のデータ圧縮器。
  7. 前記データストリームは、少なくとも1つの画像データのストリームを備え、前記データオブジェクトのそれぞれは、画像表示にタイルを描くための画像コマンドのリストを備え、前記データセクションのぞれぞれは、前記画像コマンドのうちの1つを備え、前記データ項目のぞれぞれは、前記画像コマンド内にフィールドを備えることを特徴とする、請求項2に記載のデータ圧縮器。
  8. 前記データストアは、データキャッシュを備えることを特徴とする、請求項1に記載のデータ圧縮器。
  9. 前記データストアはデータキャッシュを備え、前記データキャッシュの各ラインは、記憶するために前記ラインが割り当てられている前記データオブジェクトを識別するためのタグを記憶する記憶部を備えることを特徴とする、請求項1に記載のデータ圧縮器。
  10. 前記データオブジェクトのそれぞれは、複数のデータセクションを備え、前記複数のデータセクションのそれぞれは、前記データストリーム内の複数の隣接するデータ項目を備え、前記データストアコントローラ回路は、前記対応するデータオブジェクトに割り当てられている前記記憶場所のうちの1つに、データセクションを記憶するように構成され、
    前記データ項目のうちの少なくとも1つに対して、前記関連データ項目は、同一のデータオブジェクトに属する以前に受信したデータセクションの中の、前記データ項目の位置に対応する位置に存在し、
    前記データオブジェクトは、画像スクリーンにタイルの階層的な層を描くための画像コマンドのリストを備え、前記データストアコントローラ回路は、前記データセクションのうちの1つの第1のデータ項目の受信に応じて、同一のデータオブジェクトからのデータセクションが、前記データストアの中の記憶場所に記憶されているかどうかを判定し、同一のデータオブジェクトからのデータセクションが、前記データストアの中の記憶場所に記憶されていないと判定した場合には、同一のタイルだが異なる階層レベルからのデータセクションを識別し、前記受信されたデータセクションの中の少なくとも1つのデータ項目、および前記記憶されたデータセクションの中の少なくとも1つの関連データ項目から、前記デルタ値計算回路で少なくとも1つのデルタ値を計算し、前記デルタ値がどのデータ項目に関して計算されたかを示す指標とともに前記デルタ値を出力するように構成されることを特徴とする、請求項9に記載のデータ圧縮器。
  11. データを圧縮する方法であって、
    データ入力部で、複数のデータ項目を備えるデータのストリームを受信するステップと、
    データストアにアクセスし、受信されたデータ項目に関連するデータ項目が、前記データストアに記憶されているかどうかを判定するステップであって、
    前記データストアに前記関連データ項目が記憶されている場合には、前記データストアから前記関連データ項目を読み出し、前記受信されたデータ項目と前記関連データ項目との差を備えるデルタ値を計算して、前記デルタ値を出力し、
    前記データストアに前記関連データ項目が記憶されていない場合には、前記受信されたデータ項目と所定の値との差を備えるデルタ値を計算して、前記デルタ値を出力する、ステップと、
    記憶場所が、前記受信されたデータ項目に割り当てられているかどうかどうかを判定するために、前記データストアにアクセスするステップであって、
    記憶場所が前記受信されたデータ項目に割り当てられている場合、前記割り当てられた記憶場所に前記データ項目を記憶し、
    記憶場所が前記受信されたデータ項目に割り当てられていない場合、前記データストア内の記憶場所を、前記受信されたデータ項目に割り当て、前記記憶場所に記憶されているデータを排除および処分する、ステップと、
    を含み、
    前記データストリームの中の前記複数のデータ項目は、複数のデータオブジェクトのうちの1つに属するようにそれぞれ分類され、前記データオブジェクトのそれぞれは、複数のデータ項目を備え、前記データストア内の各記憶場所は、前記データオブジェクトのうちの1つに割り当てられ、前記データオブジェクトを識別する識別子を備え、前記データ項目および前記関連データ項目は、前記同一のデータオブジェクトに属し、前記関連データ項目が前記データストアに記憶されている場合には、前記受信されたデータ項目が、前記関連データ項目に割り当てられている前記記憶場所に記憶され、前記関連データ項目が排除および処分されることを特徴とする、方法。
  12. データを圧縮する方法を実行するようにコンピュータを制御するコンピュータプログラムであって、
    前記データを圧縮する方法は、
    データ入力部で、複数のデータ項目を備えるデータのストリームを受信するステップと、
    データストアにアクセスし、受信されたデータ項目に関連するデータ項目が、前記データストアに記憶されているかどうかを判定するステップであって、
    前記データストアに前記関連データ項目が記憶されている場合には、前記データストアから前記関連データ項目を読み出し、前記受信されたデータ項目と前記関連データ項目との差を備えるデルタ値を計算して、前記デルタ値を出力し、
    前記データストアに前記関連データ項目が記憶されていない場合には、前記受信されたデータ項目と所定の値との差を備えるデルタ値を計算して、前記デルタ値を出力する、ステップと、
    記憶場所が、前記受信されたデータ項目に割り当てられているかどうかどうかを判定するために、前記データストアにアクセスするステップであって、
    記憶場所が前記受信されたデータ項目に割り当てられている場合、前記割り当てられた記憶場所に前記データ項目を記憶し、
    記憶場所が前記受信されたデータ項目に割り当てられていない場合、前記データストア内の記憶場所を、前記受信されたデータ項目に割り当て、前記記憶場所に記憶されているデータを排除および処分する、ステップと、
    を含み、
    前記データストリームの中の前記複数のデータ項目は、複数のデータオブジェクトのうちの1つに属するようにそれぞれ分類され、前記データオブジェクトのそれぞれは、複数のデータ項目を備え、前記データストア内の各記憶場所は、前記データオブジェクトのうちの1つに割り当てられ、前記データオブジェクトを識別する識別子を備え、前記データ項目および前記関連データ項目は、前記同一のデータオブジェクトに属し、前記関連データ項目が前記データストアに記憶されている場合には、前記受信されたデータ項目が、前記関連データ項目に割り当てられている前記記憶場所に記憶され、前記関連データ項目が排除および処分されることを特徴とする、コンピュータプログラム。
JP2011191535A 2010-09-03 2011-09-02 相対および絶対デルタ値を使用するデータ圧縮および復元 Active JP5781867B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1014625.6 2010-09-03
GB1014625.6A GB2483282B (en) 2010-09-03 2010-09-03 Data compression and decompression using relative and absolute delta values

Publications (3)

Publication Number Publication Date
JP2012074026A JP2012074026A (ja) 2012-04-12
JP2012074026A5 JP2012074026A5 (ja) 2014-12-11
JP5781867B2 true JP5781867B2 (ja) 2015-09-24

Family

ID=43013600

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011191535A Active JP5781867B2 (ja) 2010-09-03 2011-09-02 相対および絶対デルタ値を使用するデータ圧縮および復元

Country Status (4)

Country Link
US (1) US8548962B2 (ja)
JP (1) JP5781867B2 (ja)
CN (1) CN102404564B (ja)
GB (1) GB2483282B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8032714B2 (en) * 2007-09-28 2011-10-04 Aggregate Knowledge Inc. Methods and systems for caching data using behavioral event correlations
US20120185612A1 (en) * 2011-01-19 2012-07-19 Exar Corporation Apparatus and method of delta compression
US11336295B2 (en) * 2011-09-13 2022-05-17 Exagrid Systems, Inc. Systems and methods for version chain clustering
US9146870B2 (en) 2013-07-24 2015-09-29 Arm Limited Performance of accesses from multiple processors to a same memory location
US10063422B1 (en) * 2015-12-29 2018-08-28 Amazon Technologies, Inc. Controlled bandwidth expansion in compressed disaggregated storage systems
CN107193642A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 任务数据压缩切换方法、宜压缩程度评价方法及相关装置
US10055135B2 (en) * 2016-08-18 2018-08-21 Intel Corporation Method and apparatus for compressing a data set using incremental deltas and a variable reference value
US10411730B2 (en) * 2017-04-18 2019-09-10 Delphi Technologies Ip Limited Data compression system for storing data from an automated vehicle
US10419022B2 (en) 2017-11-30 2019-09-17 International Business Machines Corporation Run-length base-delta encoding for high-speed compression
US11614889B2 (en) * 2018-11-29 2023-03-28 Advanced Micro Devices, Inc. Aggregating commands in a stream based on cache line addresses
US11321292B2 (en) * 2020-08-31 2022-05-03 Chicago Mercantile Exchange Inc. Accumulation-based data object processing

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2683648B1 (fr) * 1991-11-12 1996-12-13 Apple Computer Procede de choix d'objets dans une sequence d'images mobiles et piste d'essai de reussite correspondante.
TW224553B (en) * 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
JP2830750B2 (ja) * 1994-02-24 1998-12-02 日本電気株式会社 画像多地点通信制御装置と画像通信端末および画像通信システム
JP3495800B2 (ja) * 1994-12-28 2004-02-09 キヤノン株式会社 符号化装置及び方法
JPH08307860A (ja) * 1995-04-28 1996-11-22 Toshiba Corp シーン再エンコード装置
JPH0993592A (ja) * 1995-07-13 1997-04-04 Matsushita Electric Ind Co Ltd 画像符号化装置
US5793371A (en) * 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
US5832490A (en) * 1996-05-31 1998-11-03 Siemens Medical Systems, Inc. Lossless data compression technique that also facilitates signal analysis
US5724033A (en) * 1996-08-09 1998-03-03 Digital Equipment Corporation Method for encoding delta values
WO2000068946A1 (fr) * 1999-05-07 2000-11-16 Kabushiki Kaisha Toshiba Structure de donnees pour donnees en continu, et procede d'enregistrement et de reproduction de donnees en continu
JP2000331421A (ja) * 1999-05-17 2000-11-30 Victor Co Of Japan Ltd 情報記録装置及び情報再生装置
US6879634B1 (en) * 1999-05-26 2005-04-12 Bigband Networks Inc. Method and system for transmitting media streams over a variable bandwidth network
JP2001127644A (ja) * 1999-10-29 2001-05-11 Toshiba Corp 転送データ変換装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US6678417B1 (en) * 1999-11-30 2004-01-13 International Business Machines Corporation Dictionary based video compression
US7587467B2 (en) * 1999-12-02 2009-09-08 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7116717B1 (en) * 1999-12-15 2006-10-03 Bigband Networks, Inc. Method and system for scalable representation, storage, transmission and reconstruction of media streams
DE60110303T2 (de) * 2000-03-03 2006-03-09 Ntt Docomo, Inc. Verfahren und Vorrichtung zur Paketübertragung mit Paketenkopfkompression
US6523102B1 (en) * 2000-04-14 2003-02-18 Interactive Silicon, Inc. Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules
US6748520B1 (en) * 2000-05-02 2004-06-08 3Com Corporation System and method for compressing and decompressing a binary code image
US7471298B1 (en) * 2000-06-26 2008-12-30 S3 Graphics Co., Ltd. Fetching pixel data with reduced memory bandwidth requirement
US6961927B1 (en) * 2000-11-27 2005-11-01 Microsoft Corporation Lossless, context-free compression system and method
JP3737705B2 (ja) * 2001-02-20 2006-01-25 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、サーバ、クライアント、通信方法、及び通信プログラム
EP1374429A4 (en) * 2001-03-05 2009-11-11 Intervideo Inc SYSTEMS AND METHOD FOR CODING AND DECODING REDUNDANT MOTION VECTORS IN COMPRESSED VIDEO BITSTRAMS
US6719689B2 (en) * 2001-04-30 2004-04-13 Medtronic, Inc. Method and system for compressing and storing data in a medical device having limited storage
US7379472B2 (en) * 2001-09-27 2008-05-27 Broadcom Corporation Hardware filtering of unsolicited grant service extended headers
US7231456B1 (en) * 2001-10-10 2007-06-12 Cisco Technology, Inc. 32-bit vendor-extended-type vendor specific attribute
US7283265B2 (en) * 2001-11-14 2007-10-16 Infoprint Solutions Company Raster data compression apparatus and method
US7085020B2 (en) * 2001-11-14 2006-08-01 International Business Machines Corporation Raster data compression apparatus and method
AUPR890201A0 (en) * 2001-11-16 2001-12-06 Silverbrook Research Pty. Ltd. Methods and systems (npw005)
US7130072B2 (en) * 2002-02-08 2006-10-31 Canon Kabushiki Kaisha Multifunction system, image processing method, computer program and memory medium
US20040005005A1 (en) * 2002-04-22 2004-01-08 Mcintyre Kristen A. Method and apparatus to facilitate image difference transmission while maintaining image salience
WO2004004351A1 (en) * 2002-07-01 2004-01-08 Microsoft Corporation A system and method for providing user control over repeating objects embedded in a stream
FR2842683B1 (fr) * 2002-07-22 2005-01-14 Cit Alcatel Dispositif de multiplexage, dispositif de multiplexage et systeme de multiplexage/demultiplexage
GB0218961D0 (en) * 2002-08-15 2002-09-25 Koninkl Philips Electronics Nv Transmission method and system
AU2003272037A1 (en) * 2002-09-24 2004-04-19 Rad Data Communications A system and method for low bit-rate compression of combined speech and music
US7936973B2 (en) * 2003-07-18 2011-05-03 Koninklijke Philips Electronics N.V. Detecting a content item in a digital video stream
US20050047504A1 (en) * 2003-09-03 2005-03-03 Sung Chih-Ta Star Data stream encoding method and apparatus for digital video compression
US8085273B2 (en) * 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US7657533B2 (en) * 2003-11-26 2010-02-02 Hewlett-Packard Development Company, L.P. Data management systems, data management system storage devices, articles of manufacture, and data management methods
JP2005234687A (ja) * 2004-02-17 2005-09-02 Sony Corp メモリ管理方法、画像処理装置およびメモリ管理プログラム
WO2006042159A2 (en) * 2004-10-05 2006-04-20 Vectormax Corporation Interactive video collaboration framework
WO2006063057A2 (en) * 2004-12-06 2006-06-15 Agilix Labs Applying multiple compression algorithms in a database system
KR100598119B1 (ko) * 2005-01-17 2006-07-10 삼성전자주식회사 디스플레이장치 및 그 제어방법
US7921078B2 (en) * 2005-04-20 2011-04-05 Sony Online Entertainment Llc System for negotiated differential compression
EP1941661A4 (en) * 2005-10-06 2009-03-11 Egc & C Co Ltd SYSTEM AND METHOD FOR MANAGING THE TRANSMISSION OF IMAGES LIVED ON A NETWORK
US8718147B2 (en) * 2006-02-17 2014-05-06 Avocent Huntsville Corporation Video compression algorithm
JP4576350B2 (ja) * 2006-03-24 2010-11-04 富士通株式会社 通信制御装置および通信制御方法
AU2007234696B2 (en) * 2006-04-07 2011-08-18 Data Storage Group Data compression and storage techniques
CN101094171B (zh) * 2006-06-22 2011-02-16 华为技术有限公司 实现媒体流交互方法和系统及媒体网关控制器和媒体网关
US7885988B2 (en) * 2006-08-24 2011-02-08 Dell Products L.P. Methods and apparatus for reducing storage size
US20080162922A1 (en) * 2006-12-27 2008-07-03 Swartz Troy A Fragmenting security encapsulated ethernet frames
US8068654B2 (en) * 2007-02-02 2011-11-29 Siemens Akteingesellschaft Method and system for detection and registration of 3D objects using incremental parameter learning
US8768895B2 (en) * 2007-04-11 2014-07-01 Emc Corporation Subsegmenting for efficient storage, resemblance determination, and transmission
US8014614B2 (en) * 2008-04-14 2011-09-06 General Electric Company Method and system for compressing data
US20090290855A1 (en) * 2008-05-20 2009-11-26 Francois-Xavier Kowalski Apparatus And Method For Recording Video Data
JP2010062792A (ja) * 2008-09-03 2010-03-18 Weigang Xu 画像圧縮装置、画像伸張装置、画像圧縮プログラムおよび画像伸張プログラム
US8751462B2 (en) * 2008-11-14 2014-06-10 Emc Corporation Delta compression after identity deduplication
US8447740B1 (en) * 2008-11-14 2013-05-21 Emc Corporation Stream locality delta compression
US8412848B2 (en) * 2009-05-29 2013-04-02 Exagrid Systems, Inc. Method and apparatus for content-aware and adaptive deduplication
CN101674315B (zh) * 2009-10-20 2014-12-10 中兴通讯股份有限公司 一种时间戳压缩、解压缩的方法及装置
US8396954B2 (en) * 2010-06-24 2013-03-12 Aryaka Networks, Inc. Routing and service performance management in an application acceleration environment
US8362931B2 (en) * 2010-11-30 2013-01-29 Microsoft Corporation Compression and decompression of mass spectrometry data
US20120185612A1 (en) * 2011-01-19 2012-07-19 Exar Corporation Apparatus and method of delta compression

Also Published As

Publication number Publication date
CN102404564B (zh) 2016-08-17
GB2483282B (en) 2017-09-13
US20120059804A1 (en) 2012-03-08
JP2012074026A (ja) 2012-04-12
CN102404564A (zh) 2012-04-04
US8548962B2 (en) 2013-10-01
GB2483282A (en) 2012-03-07
GB201014625D0 (en) 2010-10-13

Similar Documents

Publication Publication Date Title
JP5781867B2 (ja) 相対および絶対デルタ値を使用するデータ圧縮および復元
JP2012074026A5 (ja)
US9612774B2 (en) Metadata structures for low latency and high throughput inline data compression
US9946462B1 (en) Address mapping table compression
KR102381944B1 (ko) 주파수 압축과 텍스처 파이프라인
EP3296996B1 (en) Method for processing data, storage apparatus, solid state disk and storage system
JP3490346B2 (ja) テクスチャ・データ取り出し方法
EP3036642B1 (en) Hardware managed compressed cache
US7328326B2 (en) Storage device
US20170364446A1 (en) Compression and caching for logical-to-physical storage address mapping tables
US8489555B2 (en) Method of managing storage and retrieval of data objects
US8898351B2 (en) Dynamic compression of an I/O data block
TW201539187A (zh) 快閃記憶體之壓縮、讀取方法及應用其方法的裝置
US9933962B1 (en) Method for achieving sequential I/O performance from a random workload
WO2007049108B1 (en) Method and system for compression of data for block mode access storage
CN105117351A (zh) 向缓存写入数据的方法及装置
KR20180048938A (ko) 하드웨어-가속화된 스토리지 압축
US8775775B1 (en) Dynamic prefetch throttling for multi-controller systems
US20220083233A1 (en) Data compression system using base values and methods thereof
CN109302449A (zh) 数据写入方法、数据读取方法、装置和服务器
CN115865097B (zh) 一种数据压缩方法、系统、设备及计算机可读存储介质
CN113377391B (zh) 镜像文件的制作和烧录的方法、装置、设备和介质
CN113190468B (zh) 一种l2p表压缩方法、装置、设备及可读存储介质
CN111639055A (zh) 差分包计算方法、装置、设备及存储介质
CN107329702B (zh) 一种自精简元数据管理方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140728

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20141027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150603

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150716

R150 Certificate of patent or registration of utility model

Ref document number: 5781867

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250