JP2008252163A - データ圧縮装置、データ伸張装置、及び情報処理装置 - Google Patents
データ圧縮装置、データ伸張装置、及び情報処理装置 Download PDFInfo
- Publication number
- JP2008252163A JP2008252163A JP2007087096A JP2007087096A JP2008252163A JP 2008252163 A JP2008252163 A JP 2008252163A JP 2007087096 A JP2007087096 A JP 2007087096A JP 2007087096 A JP2007087096 A JP 2007087096A JP 2008252163 A JP2008252163 A JP 2008252163A
- Authority
- JP
- Japan
- Prior art keywords
- data
- compressed
- compression
- unit
- units
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】記憶領域に空き領域を生じることなく複数の圧縮部を用いて圧縮されたデータを記憶装置に記憶させることが容易なデータ圧縮装置、このデータ圧縮装置により圧縮されたデータを伸張することができるデータ伸張装置、及び情報処理装置を提供する。
【解決手段】被圧縮データストリーム4A,4Bから、第1単位データ量L1ずつ順次データを取得して圧縮する圧縮/伸張器11A,11Bと、被圧縮データストリーム4A,4Bから第1単位データ量L1のデータが取得された回数を計数するカウンタ12A,12Bと、第2単位データ量L2の圧縮データストリーム6の合成を行う都度、カウンタ12A,12Bの計数値が小さい方に対応する圧縮/伸張器11A,11Bを選択し、当該選択された圧縮/伸張器により圧縮される圧縮データ5A,5Bのうち第2単位データ量L2のデータを、順次圧縮データストリーム6として記憶部3に記憶させるようにした。
【選択図】図1
【解決手段】被圧縮データストリーム4A,4Bから、第1単位データ量L1ずつ順次データを取得して圧縮する圧縮/伸張器11A,11Bと、被圧縮データストリーム4A,4Bから第1単位データ量L1のデータが取得された回数を計数するカウンタ12A,12Bと、第2単位データ量L2の圧縮データストリーム6の合成を行う都度、カウンタ12A,12Bの計数値が小さい方に対応する圧縮/伸張器11A,11Bを選択し、当該選択された圧縮/伸張器により圧縮される圧縮データ5A,5Bのうち第2単位データ量L2のデータを、順次圧縮データストリーム6として記憶部3に記憶させるようにした。
【選択図】図1
Description
本発明は、圧縮部を複数備えたデータ圧縮装置、このデータ圧縮装置により圧縮されたデータを伸張するデータ伸張装置、及びこのデータ圧縮装置とデータ伸張装置とを備えた情報処理装置に関する。
近年、電子機器の取り扱うデータ量が増大し、このような大量のデータを記憶するためのメモリやHDD等の記憶装置の容量が増加することを低減するために、データ圧縮装置とデータ伸張装置とを備えてデータを圧縮して記憶装置に記憶させ、データを読み出すときにデータを伸張することで記憶装置の記憶容量を低減するようにした電子機器が知られている。このようなデータ圧縮を行うことで、記憶装置の記憶領域において、作業用のワークエリアを確保したり、近い将来利用しないデータの一部を圧縮して記憶領域を確保することも容易となる。
また、電子機器の情報処理速度が高速になると、情報処理速度に追従してデータ圧縮、伸張を行う必要が生じる。そこで、圧縮器や伸張器を複数備えて並行動作させることにより、圧縮伸張処理を高速化する技術が知られている(例えば、特許文献1参照。)。
特開2003−198815号公報
しかしながら、複数の圧縮器を並行動作させてデータの圧縮を行う場合、各圧縮器がそれぞれ独立して圧縮されたデータを出力するので、各圧縮器から出力されるデータそれぞれを記憶するための記憶領域を予め記憶装置に確保する必要がある。図8は、背景技術に係る複数の圧縮器を並行動作させる場合の記憶領域と、圧縮器により圧縮されたデータとの関係を説明するための説明図である。
複数の圧縮器を並行動作させる場合、各圧縮器で圧縮されるデータの圧縮率は、事前に分からない。そのため、各圧縮器がそれぞれ独立して圧縮されたデータを出力すると、各圧縮器により圧縮されるデータをそれぞれ記憶させるための記憶領域を、各圧縮器による圧縮率がそれぞれ最悪であった場合でも記憶領域が不足しないように、予め圧縮率が最悪の場合のワーストサイズに合わせて確保する必要がある。そして、実際にデータ圧縮を行った後に得られた圧縮データは、多くの場合、ワーストサイズより小さくなるから、予め確保されていた記憶領域に空き領域が生じて記憶領域が断片化する。
記憶領域が断片化すると、記憶領域の利用効率が低下したり、記憶領域の管理が複雑となって、記憶領域へのアクセス速度が低下したりする等の弊害が生じるという不都合があった。また、記憶領域が断片化した場合、断片化した記憶領域を整理して連続した記憶領域を確保する処理として、いわゆるガーページコレクションが知られているが、このような処理は、メモリ管理の情報処理量を増大させ、また処理時間も増大するという不都合があった。
本発明は、このような事情に鑑みて為された発明であり、記憶領域に空き領域を生じることなく複数の圧縮部を用いて圧縮されたデータを記憶装置に記憶させることが容易なデータ圧縮装置、このデータ圧縮装置により圧縮されたデータを伸張することができるデータ伸張装置、及びこのデータ圧縮装置とデータ伸張装置とを備えた情報処理装置を提供することを目的とする。
本発明に係るデータ圧縮装置は、圧縮対象となる複数の非圧縮データストリームのそれぞれに対応して設けられ、各圧縮部に対応する非圧縮データストリームから、予め設定された非圧縮設定データ量ずつ順次データを取得して圧縮することにより、対応する非圧縮データストリームをそれぞれ並行して圧縮する複数の圧縮部と、前記複数の圧縮部によってそれぞれ圧縮された圧縮データを、予め設定された圧縮設定データ量ずつ合成すると共に、前記圧縮設定データ量分の圧縮データの合成を行う都度、前記複数の圧縮部のうち、各圧縮部に対応する非圧縮データストリームからの取得済みのデータ量が最小の圧縮部を選択し、当該選択された圧縮部により圧縮される圧縮データのうち前記圧縮設定データ量分のデータを、順次前記圧縮データストリームとして出力することによって、前記複数の圧縮部によってそれぞれ圧縮された圧縮データを一つの圧縮データストリームに合成して出力する合成部とを備える。
この構成によれば、圧縮対象となる複数の非圧縮データストリームが、複数の圧縮部によって並行して圧縮されるので、データの圧縮処理時間を短縮することができる。また、複数の圧縮部によってそれぞれ圧縮された圧縮データは、合成部によって一つの圧縮データストリームとして出力されるので、合成部から出力された圧縮データストリームを記憶装置に記憶させる際に、圧縮されたデータをひとかたまりにして記憶させることが容易となる結果、記憶領域に空き領域を生じることなく複数の圧縮部によって圧縮されたデータを記憶させることが容易となる。また、複数の圧縮部によって、各圧縮部に対応する非圧縮データストリームから、非圧縮設定データ量ずつ順次データが取得されて圧縮され、合成部によって、圧縮設定データ量分の圧縮データストリームの合成を行う都度、複数の圧縮部のうち、各圧縮部に対応する非圧縮データストリームからの取得済みのデータ量が最小の圧縮部が選択される。そして、合成部によって、当該選択された圧縮部により圧縮される圧縮データのうち圧縮設定データ量分のデータが、順次圧縮データストリームとして出力される。この場合、各圧縮部における圧縮後のデータ量に差異が生じた場合であっても、非圧縮データストリームからの取得済みのデータ量が最小の圧縮部が順次選択されて、当該選択された圧縮部により圧縮される圧縮データが圧縮データストリームに合成される結果、各圧縮部による圧縮処理をバランスよく実行させることができるので、特定の圧縮部が、圧縮済みのデータが合成されるまで待たされ続けるおそれが低減される。
さらに、この場合、合成部から出力される圧縮データストリームは、圧縮部の数と同数の非圧縮データストリームがそれぞれ圧縮されて得られたデータ列である圧縮データ列のうち、いずれかの圧縮データ列に含まれる圧縮設定データ量ずつの複数のデータブロックが合成されて圧縮データストリームとなる。そして、圧縮データストリームにおける各データブロックの配列順序は、各データブロックが含まれる圧縮データ列の圧縮前の非圧縮データストリームにおける先頭に近い位置に位置するデータブロックほど、当該データブロックの位置が先頭に近い位置になるように各データブロックが配列される。
また、前記複数の圧縮部には、優先順位が予め設定されており、前記合成部は、前記圧縮設定データ量分の前記圧縮データストリームの合成を行う場合において、前記取得済みのデータ量が最小となる圧縮部が複数あるとき、前記優先順位に従って圧縮部を選択することが好ましい。
この構成によれば、前記取得済みのデータ量が最小となる圧縮部が複数あるときは、合成部によって優先順位に従って圧縮部が選択されるので、前記取得済みのデータ量が最小となる圧縮部が複数あるときであっても、各圧縮部により圧縮された圧縮データが一定の規則に従って配列される結果、データの伸張を行う際に、圧縮データストリームから各圧縮部により圧縮された圧縮データを取り出すことが容易となる。
また、前記複数の圧縮部のそれぞれに対応して設けられ、対応する圧縮部によって前記非圧縮データストリームから前記非圧縮設定データ量のデータが取得された回数を計数する複数の計数部をさらに備え、前記合成部は、前記各計数部の計数値を、各計数部に対応する圧縮部の前記取得済みのデータ量として用いることが好ましい。
この構成によれば、複数の計数部によって、各圧縮部により非圧縮データストリームから非圧縮設定データ量のデータが取得された回数が計数される。そして、合成部によって、各計数部の計数値が、各計数部に対応する圧縮部の取得済みのデータ量として用いられるので、各計数部を用いて各圧縮部による非圧縮データストリームからの取得済みのデータ量を検出することができる。
また、圧縮対象となるプログラムコードをオペコードとオペランドとに分離して、それぞれを前記非圧縮データストリームとして前記圧縮部へ出力するプログラムコード分離部をさらに備えることが好ましい。
この構成によれば、プログラムコード分離部によって、圧縮対象となるプログラムコードがオペコードとオペランドとに分離され、それぞれが非圧縮データストリームとして圧縮部へ出力されることにより、オペコードとオペランドとが個別に圧縮される。そうすると、同種のデータが集められて各非圧縮データストリームが構成されることとなる結果、各被圧縮データに規則性が生じやすくなって、圧縮率を増大させることが容易となる。
また、本発明に係るデータ伸張装置は、圧縮されたデータを伸張する複数の伸張部と、前記伸張部の数と同数の圧縮されたデータ列である圧縮データ列のうち、いずれかの圧縮データ列に含まれる予め設定された圧縮設定データ量ずつの複数のデータブロックが合成された圧縮データストリームであって、前記各データブロックが圧縮される前のデータが、当該各データブロックの含まれる圧縮データ列が圧縮される前のデータ列である非圧縮データストリームにおける先頭に近い位置に位置するデータブロックほど、先頭に近い位置になるように各データブロックが配列されている圧縮データストリームから、前記各データブロックを順次取得し、前記複数の伸張部に分配してそれぞれに伸張させることによって、当該伸張部により前記非圧縮データストリームを生成させる分配部とを備え、前記分配部は、前記各データブロックを前記複数の伸張部へ分配する都度、前記複数の伸張部のうち、前記非圧縮データストリームとして生成済みのデータ量が最小の伸張部を選択する。
この構成によれば、伸張部の数と同数の圧縮されたデータ列である圧縮データ列のうち、いずれかの圧縮データ列に含まれる予め設定された圧縮設定データ量ずつの複数のデータブロックが合成されたデータストリームである圧縮データストリームであって、前記各データブロックが圧縮される前のデータが、当該各データブロックの含まれる圧縮データ列が圧縮される前のデータ列である非圧縮データストリームにおける先頭に近い位置に位置するデータブロックほど、先頭に近い位置になるように各データブロックが配列されている圧縮データストリームから各データブロックが、分配部によって順次取得され、複数の伸張部に分配されてそれぞれ伸張されて、非圧縮データストリームが生成される。そして、分配部によって、各データブロックが複数の伸張部へ分配される都度、複数の伸張部のうち、非圧縮データストリームとして生成済みのデータ量が最小の伸張部が選択される。非圧縮データストリームとして生成済みのデータ量が最小であることは、当該非圧縮データストリームの次に生成されるべきデータの位置が、他の非圧縮データストリームより先頭に近い位置であることを意味するから、各データブロックが複数の伸張部へ分配される都度、複数の伸張部のうち、非圧縮データストリームとして生成済みのデータ量が最小の伸張部を選択することにより、非圧縮データストリームにおける先頭に近い位置に位置するデータブロックほど、先頭に近い位置になるように各データブロックが配列されている圧縮データストリームから合成前の圧縮データ列を取り出して、それぞれ伸張することにより、非圧縮データストリームを復元することが可能となる。そうすると、このような圧縮データストリームは、上述のデータ圧縮装置によって生成されるから、上述のデータ圧縮装置によって生成された圧縮データストリームを伸張することができる。
また、前記複数の伸張部には、優先順位が予め設定されており、前記分配部は、前記各データブロックの前記複数の伸張部への分配を行う場合において、前記非圧縮データストリームとして生成済みのデータ量が最小となる伸張部が複数あるとき、前記優先順位に従って伸張部を選択することが好ましい。
この構成によれば、非圧縮データストリームとして生成済みのデータ量が最小となる伸張部が複数あるときは、分配部によって優先順位に従って伸張部が選択されるので、非圧縮データストリームとして生成済みのデータ量が最小となる伸張部が複数あるときであっても、一定の規則に従って伸張部を選択することができる。
また、前記複数の伸張部は、前記各データブロックのデータを伸張して得られた非圧縮データ列を、予め設定された非圧縮設定データ量ずつ順次出力することによって、前記複数の非圧縮データストリームを生成し、前記複数の伸張部のそれぞれに対応して設けられ、対応する伸張部から前記非圧縮設定データ量のデータが出力された回数を計数する複数の計数部をさらに備え、前記分配部は、前記各計数部の計数値を、前記各伸張部による生成済みの非圧縮データストリームのデータ量として用いることが好ましい。
この構成によれば、複数の伸張部によって、各データブロックのデータを伸張して得られた非圧縮データ列が、非圧縮設定データ量ずつ順次出力されることによって、複数の非圧縮データストリームが生成される。また、計数部によって、対応する伸張部から非圧縮設定データ量のデータが出力された回数が計数される。そして、各計数部の計数値が、各伸張部による生成済みの非圧縮データストリームのデータ量として用いられるので、各計数部を用いて各伸張部による生成済みの非圧縮データストリームのデータ量を検出することができる。
また、本発明に係る情報処理装置は、圧縮対象となる被圧縮データのデータストリームである複数の非圧縮データストリームのそれぞれに対応して設けられ、対応する非圧縮データストリームから予め設定された非圧縮設定データ量ずつ順次データを取得して圧縮する複数の圧縮部と、前記複数の圧縮部のそれぞれに対応して設けられ、対応する圧縮部によって前記非圧縮データストリームから前記非圧縮設定データ量のデータが取得された回数を計数する複数の計数部と、前記複数の圧縮部によってそれぞれ圧縮された圧縮データを合成して、一つの圧縮データストリームとして出力する合成部と、前記合成部から出力された圧縮データストリームを被伸張データとして記憶する記憶部と、圧縮されたデータを伸張し、前記非圧縮設定データ量ずつ順次出力することによって、伸張されたデータのデータストリームである非圧縮データストリームを生成する複数の伸張部と、前記記憶部に記憶されている被伸張データを、前記複数の伸張部に分配して当該各伸張部に前記非圧縮データストリームを生成させる分配部とを備え、前記複数の計数部は、さらに、前記複数の伸張部のそれぞれに対応し、前記複数の伸張部によって前記非圧縮データストリームの生成が行われる場合、対応する伸張部から前記非圧縮設定データ量の被圧縮データが出力される回数を計数し、前記合成部は、予め設定された圧縮設定データ量分の前記圧縮データストリームの生成を行う都度、前記複数の圧縮部のうち対応する計数部の計数値が最小の圧縮部を選択し、当該選択した圧縮部により圧縮された圧縮データを前記圧縮設定データ量ずつ順次前記圧縮データストリームとして出力することによって、前記圧縮データストリームを合成し、前記分配部は、前記被伸張データの前記複数の伸張部への分配を行う都度、分配先の伸張部として前記複数の伸張部のうち対応する計数部の計数値が最小の伸張部を選択する。
この構成によれば、圧縮部によって、複数の非圧縮データストリームから予め設定された非圧縮設定データ量ずつ順次データが取得されて圧縮される。また、複数の圧縮部によって非圧縮データストリームから非圧縮設定データ量のデータが取得された回数が、複数の計数部によってそれぞれ計数される。そして、合成部によって、圧縮設定データ量分の圧縮データストリームの生成を行う都度、複数の圧縮部のうち対応する計数部の計数値が最小の圧縮部が選択され、当該選択された圧縮部により圧縮された圧縮データが、圧縮設定データ量ずつ順次圧縮データストリームとして出力されることによって、圧縮データストリームが合成される。これによれば、圧縮対象となる複数の非圧縮データストリームが、複数の圧縮部によって並行して圧縮されるので、データの圧縮処理時間を短縮することができる。また、複数の圧縮部によってそれぞれ圧縮された圧縮データは、合成部によって一つの圧縮データストリームとして出力されるので、この圧縮データストリームをひとかたまりにして被伸張データとして記憶部に記憶させることが容易となる結果、記憶部の記憶領域に空き領域を生じることなく複数の圧縮部によって圧縮されたデータを記憶部に記憶させることが容易となる。
そして、分配部によって、記憶部に記憶されている被伸張データの複数の伸張部への分配を行う都度、分配先の伸張部として複数の伸張部のうち対応する計数部の計数値が最小の伸張部が選択され、当該選択された伸張部によって、分配されたデータが伸張されて非圧縮設定データ量ずつ順次出力されることによって、非圧縮データストリームが生成される。また、伸張部によって非圧縮データストリームの生成が行われるとき、当該伸張部に対応する計数部によって、当該伸張部から非圧縮設定データ量の被圧縮データが出力される回数が計数される。この場合、複数の計数部は、複数の圧縮部によって非圧縮データストリームから非圧縮設定データ量のデータが取得された回数の計数と、伸張部から非圧縮設定データ量の被圧縮データが出力される回数の計数とに共用されるので、圧縮用の計数部と伸張用の計数部とを個別に備える必要がなく、回路規模を低減することができる。
このような構成のデータ圧縮装置及び情報処理装置は、圧縮対象となる複数の非圧縮データストリームが、複数の圧縮部によって並行して圧縮されるので、データの圧縮処理時間を短縮することができる。また、複数の圧縮部によってそれぞれ圧縮された圧縮データは、合成部によって一つの圧縮データストリームとして出力されるので、合成部から出力された圧縮データストリームを記憶装置に記憶させる際に、圧縮されたデータをひとかたまりにして記憶させることが容易となる結果、記憶領域に空き領域を生じることなく複数の圧縮部によって圧縮されたデータを記憶させることが容易となる。
また、このような構成のデータ伸張装置は、上述のデータ圧縮装置により圧縮されたデータを伸張することができる。
以下、本発明に係る実施形態を図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、その説明を省略する。図1は、本発明の一実施形態に係るデータ圧縮装置及びデータ伸張装置の一例である圧縮伸張装置1を用いた情報処理装置2の構成の一例を示すブロック図である。なお、図1は、圧縮伸張装置1によってデータの圧縮が行われる際のデータの流れを矢印で示している。また、図2は、圧縮伸張装置1によってデータの伸張が行われる際のデータの流れを矢印で示している。
図1に示す情報処理装置2は、圧縮伸張装置1と、記憶部3とを備えている。図1に示す圧縮伸張装置1は、圧縮/伸張器11A,11Bと、カウンタ12A,12B(計数部)と、マージ/分離部13とを備えている。記憶部3は、半導体メモリやHDD(Hard Disk Drive)等の記憶装置である。
そして、情報処理装置2は、図略の情報処理回路、例えば画像処理回路やDMA(Direct Memory Access)回路等から出力された圧縮されていない、非圧縮データAの非圧縮データストリーム4Aと、非圧縮データBの非圧縮データストリーム4Bとが、並行してそれぞれ圧縮/伸張器11Aと、圧縮/伸張器11Bとへ供給されるようになっている。
圧縮/伸張器11A,11Bは、並行動作することにより、圧縮対象となる非圧縮データストリーム4Aと非圧縮データストリーム4Bとを並行して圧縮し、それぞれを圧縮データ5A,5Bとしてマージ/分離部13へ出力する。圧縮/伸張器11A,11Bは、圧縮部の一例に相当している。
マージ/分離部13は、圧縮/伸張器11A,11Bによってそれぞれ圧縮された圧縮データ5A,5Bを、圧縮データストリーム6に合成して記憶部3へ出力し、圧縮データストリーム6を圧縮データA+Bとして記憶部3に記憶させる。マージ/分離部13は、合成部の一例に相当している。
また、マージ/分離部13は、図2に示すように、記憶部3に記憶されている圧縮データA+Bをデータストリーム7(圧縮データストリーム)として読み出して、圧縮/伸張器11A,11Bへ圧縮データ8A,8Bとして分配する。マージ/分離部13は、分配部の一例にも相当している。
また、圧縮/伸張器11A,11Bは、図2に示すように、マージ/分離部13によって分配された圧縮データ8A,8Bを伸張し、それぞれ伸張データストリーム9A,9B(非圧縮データストリーム)として、図略の情報処理回路へ出力する。圧縮/伸張器11A,11Bは、伸張部の一例にも相当している。
また、図略の情報処理回路と圧縮/伸張器11A,11Bとの間は、それぞれ例えば32ビットのバス幅のバスラインで接続されており、非圧縮データストリーム4A,4B、及び伸張データストリーム9A,9Bのデータ幅が32ビットにされている。この場合、非圧縮データストリーム4A,4B、及び伸張データストリーム9A,9Bは、圧縮/伸張器11A,11Bとの間でバス幅に相当する第1単位データ量L1の32ビットずつ、入出力が行われ、この第1単位データ量L1が非圧縮設定データ量の一例に相当している。
また、圧縮/伸張器11A,11Bとマージ/分離部13との間は、それぞれ例えば32ビットのバス幅のバスラインで接続されており、圧縮データ5A,5Bや圧縮データ8A,8Bは、圧縮/伸張器11A,11Bとマージ/分離部13との間でバス幅に相当する第2単位データ量L2の32ビットずつ、転送されるようになっている。また、圧縮/伸張器11A,11Bとマージ/分離部13との間には、圧縮データ5A,5Bを一時的に記憶する図略の記憶バッファが設けられており、圧縮/伸張器11A,11Bとマージ/分離部13との間でタイミング調整を行うようになっている。この場合、第2単位データ量L2が圧縮設定データ量の一例に相当している。なお、第1単位データ量L1と第2単位データ量L2とは異なるデータ量に設定されていてもよい。
カウンタ12Aは、圧縮/伸張器11Aによって非圧縮データストリーム4Aから第1単位データ量L1のデータが取得された回数(データの個数)を計数する。カウンタ12Bは、圧縮/伸張器11Bによって非圧縮データストリーム4Bから第1単位データ量L1のデータが取得された回数(データの個数)を計数する。
また、カウンタ12Aは、さらに、圧縮/伸張器11Aによって伸張データストリーム9Aの生成が行われる場合、圧縮/伸張器11Aから第1単位データ量L1ずつのデータが出力される回数(データの個数)を計数する。また、カウンタ12Bは、さらに、圧縮/伸張器11Bによって伸張データストリーム9Bの生成が行われる場合、圧縮/伸張器11Bから第1単位データ量L1ずつのデータが出力される回数(データの個数)を計数する。
次に、上述のように構成された圧縮伸張装置1を用いた情報処理装置2の動作について説明する。図3は、圧縮伸張装置1がデータ圧縮を行う場合の動作を説明するための説明図である。図3(a)は、非圧縮データストリーム4Aが圧縮/伸張器11Aによって圧縮され、圧縮データ5Aが生成される動作の一例を示し、図3(b)は、非圧縮データストリーム4Bが圧縮/伸張器11Bによって圧縮され、圧縮データ5Bが生成される動作の一例を示している。
非圧縮データストリーム4Aは、それぞれ第1単位データ量L1のデータA1〜A8が連結されて構成されている。非圧縮データストリーム4Bは、それぞれ第1単位データ量L1のデータB1〜B8が連結されて構成されている。
まず、圧縮/伸張器11Aによって、非圧縮データストリーム4AのデータA1が圧縮されてデータa1が生成されるのと並行して、圧縮/伸張器11Bによって、非圧縮データストリーム4BのデータB1が圧縮されてデータb1が生成される。このとき、圧縮/伸張器11AによってデータA1が取得され、圧縮/伸張器11BによってデータB1が取得されるから、カウンタ12A,12Bの計数値CA,CBが共に「1」となる。
データA1〜A8やデータB1〜B8が圧縮される際の圧縮率は、当該データやその前後のデータの内容によって異なり、圧縮後のデータa1〜a8、b1〜b8のデータ量は可変長となる。データa1,b1は第2単位データ量L2より小さいので、さらに圧縮/伸張器11A,11Bによって、データA2,B2が取得されてカウンタ12A,12Bの計数値CA,CBが共に「2」になると共に、圧縮/伸張器11A,11BによってデータA2,B2が圧縮されてデータa2,b2となる。そうすると、図3に示すように、データa1+a2、データb1+b2は、共に第2単位データ量L2を超えるから、圧縮/伸張器11Aから第2単位データ量L2分のデータが圧縮データ5A(データa1とデータa2の一部とを含む)としてマージ/分離部13へ出力され、圧縮/伸張器11Bから第2単位データ量L2分のデータが圧縮データ5B(データb1とデータb2の一部とを含む)としてマージ/分離部13へ出力される。
以下、同様にして、データA2〜A8、及びB2〜B8についても、圧縮/伸張器11A,11Bによって、圧縮/伸張器11A,11Bにそれぞれ対応する非圧縮データストリーム4A,4Bから、第1単位データ量L1ずつ順次データが取得され、当該取得された第1単位データ量L1のデータの圧縮が終わり、圧縮済みのデータ量が第2単位データ量L2に達する都度、第2単位データ量L2分のデータが圧縮データ5A,5Bとしてマージ/分離部13へ出力される。そして、圧縮/伸張器11A,11Bから、圧縮データ5A,5Bがマージ/分離部13へ出力される都度、新たな第1単位データ量L1のデータが取得されてカウンタ12A,12Bの計数値CA,CBが一つずつ加算されて、例えば図3に示す圧縮データ5A,5Bが得られる。
図4は、図1に示すマージ/分離部13の動作の一例を説明するための説明図である。まず、マージ/分離部13によって、圧縮データ5A(データa1とデータa2の一部),5B(データb1とデータb2の一部)が受信されると、タイミングT1において、マージ/分離部13によって、カウンタ12A,12Bの計数値CA,CBが比較される。そうすると、計数値CA,CBは共に「2」であるから、マージ/分離部13によって、優先順位が高く設定されている圧縮/伸張器、例えば圧縮/伸張器11Aが選択され、圧縮/伸張器11Aから出力された圧縮データ5A(データa1とデータa2の一部)が圧縮データストリーム6として記憶部3へ出力されて、記憶部3によって圧縮データ5A(データa1とデータa2の一部)が記憶される。
次に、タイミングT2において、マージ/分離部13によって、カウンタ12A,12Bの計数値CA,CBが比較される。そうすると、計数値CAは「3」、計数値CBは「2」であって、計数値が異なっているから、マージ/分離部13によって、計数値が小さいカウンタ12Bに対応する圧縮/伸張器11Bが選択され、圧縮/伸張器11Bから出力された圧縮データ5B(データb1とデータb2の一部)が圧縮データストリーム6として記憶部3へ出力されて、記憶部3によって圧縮データ5B(データb1とデータb2の一部)が記憶される。
以下、図4に示すように、タイミングT3〜T12においても同様に、マージ/分離部13によって、カウンタ12A,12Bの計数値CA,CBが比較される。そして、計数値CA,CBの値が異なっているときは、マージ/分離部13によって、計数値が小さいカウンタに対応する圧縮/伸張器から出力された圧縮データが選択されて圧縮データストリーム6として記憶部3へ出力されると共に記憶される。また、計数値CA,CBの値が等しいときは、マージ/分離部13によって、優先順位が高く設定されている圧縮/伸張器から出力された圧縮データが選択されて圧縮データストリーム6として記憶部3へ出力されると共に記憶される。
このように、マージ/分離部13によって、計数値が小さいカウンタに対応する圧縮/伸張器から出力された圧縮データが選択されることによって、複数の圧縮/伸張器11A,11Bのうち、非圧縮データストリーム4A,4Bから取得済みのデータ量が最小の圧縮/伸張器が選択される。
ところで、例えば非圧縮データストリーム4Aと非圧縮データストリーム4Bとを交互に選択し、圧縮データストリームに合成した場合には、非圧縮データストリーム4Aと非圧縮データストリーム4Bとの間で圧縮率に差があると、圧縮率が高いデータストリームの圧縮、合成処理の進み方と、圧縮率が低いデータストリームの圧縮、合成処理の進み方との差が大きくなり、圧縮/伸張器11A,11Bの動作タイミングを調節するために必要となる図略の記憶バッファの記憶容量が増大するという不都合がある。しかしながら、図1に記載のマージ/分離部13によれば、非圧縮データストリーム4Aと非圧縮データストリーム4Bとの間で圧縮率に差がある場合であっても、圧縮/伸張器11Aで圧縮された圧縮データ5Aと、圧縮/伸張器11Bで圧縮された圧縮データ5Bとを、バランスよく配列して圧縮データストリーム6に合成することができるので、圧縮/伸張器11A,11Bとマージ/分離部13との間でタイミング調整を行うための記憶バッファの記憶容量を低減することが可能となる。
図5は、図1に示す圧縮伸張装置1の効果を説明するための説明図である。図5に示すように、非圧縮データA,Bは、圧縮を行う前は、圧縮後のデータサイズが不明である。そのため、図5に示すように、情報処理装置2において予め記憶部3に、圧縮後の非圧縮データAのワーストデータサイズと圧縮後の非圧縮データBのワーストデータサイズとを合わせた記憶領域を確保する必要がある。しかし、図1に示す圧縮伸張装置1によれば、非圧縮データA,Bが圧縮されて、連続する一つの圧縮データストリーム6(圧縮データA+B)として記憶部3へ出力されるので、記憶部3に、ひとかたまりの圧縮データA+Bとして記憶させることができる。
そうすると、図8に示す背景技術のように、記憶領域に空き領域が生じることがなく、記憶部3の圧縮データA+Bが記憶されている記憶領域の直後から、新たなデータCを記憶させることができるので、記憶領域の利用効率の低下が低減される。また、記憶領域が断片化することがないので、記憶領域の管理が複雑となって、記憶領域へのアクセス速度が低下する等の弊害が生じることが低減される。
なお、被圧縮データは、非圧縮データA,Bの二つに限られない。例えば、カラー画像データをR,G,Bの各色成分のプレーンで表した場合、色成分毎に、同一の画素値の画素が連続する等、圧縮率が高くなる条件が整い易くなる。そこで、圧縮/伸張器を三つ設けて、R,G,Bの各色成分を示す三つの画像データを並行して三つの非圧縮データストリームとして、三つの圧縮/伸張器へそれぞれ供給することにより、全体としての圧縮率を増大させることが容易となる。
また、例えばメモリに記憶されているひとかたまりのプログラムコードを、例えば奇数アドレスと偶数アドレスとのように、複数に分離してそれぞれ被圧縮データとしてもよい。この場合、圧縮しようとする処理対象のデータが一つであっても、複数の被圧縮データに分離して複数の圧縮/伸張器によって並列にデータ圧縮を行うことができるので、ひとかたまりのプログラムコードについても、圧縮速度を向上させることができる。
また、例えばメモリに記憶されているひとかたまりのプログラムコードを、オペコードとオペランドとに分離するプログラムコード分離部を備え、分離されたオペコードとオペランドとそれぞれ被圧縮データとしてもよい。この場合、圧縮しようとするプログラムを、複数の被圧縮データに分離して複数の圧縮/伸張器によって並列にデータ圧縮を行うことができることで、プログラムの圧縮速度を向上させることができると共に、オペコードとオペランドとに分離してそれぞれを被圧縮データとして圧縮を行うことにより、各被圧縮データに規則性が生じやすくなる結果、圧縮率を増大させることが容易となる。
次に、図2に示す情報処理装置2において、記憶部3に記憶されている圧縮データA+Bを圧縮伸張装置1によって伸張する場合の動作について説明する。まず、図1に示す情報処理装置2によって、上述のように記憶部3に記憶された圧縮データA+Bは、下記のように構成されている。すなわち、圧縮/伸張器の数と同数である二つの圧縮されていない非圧縮データストリーム4A,4Bがそれぞれ圧縮されて得られた圧縮データ5A,5Bは、当該各圧縮データ列の先頭から順に第2単位データ量L2ずつのデータブロックにされ、このデータブロックが連結されて、圧縮データA+Bとして記憶部3に記憶されている。そうすると、記憶部3からマージ/分離部13へ圧縮データA+Bが読み出されて流れることにより得られるデータストリーム7は、非圧縮データストリーム4A,4Bにおける、前記各データブロックの圧縮前におけるデータの位置が非圧縮データストリーム4A,4Bの先頭に近いデータブロックほど、データストリーム7の先頭に近い位置になるように各データブロックが配列されることとなる。
図6は、圧縮伸張装置1がデータ伸張を行う場合の動作を説明するための説明図である。まず、タイミングT21において、マージ/分離部13によって、カウンタ12A,12Bの計数値CA,CBが比較される。そうすると、まだカウンタ12A,12Bの計数値CA,CBは共に「0」であるからマージ/分離部13によって、優先順位の高い圧縮/伸張器11Aが選択されて、圧縮/伸張器11Aへ、記憶部3から読み出されてマージ/分離部13へ流れるデータストリーム7の先頭から第2単位データ量L2のデータが、圧縮データ8Aとして出力される。そうすると、圧縮データ8Aには、データa1とデータa2の一部が含まれているから、図7(a)に示すように、圧縮/伸張器11Aによって、データa1が伸張されて第1単位データ量L1のデータA1が復元され、伸張データストリーム9Aとして図略の情報処理回路へ出力される。そうすると、カウンタ12Aの計数値CAが加算されて「1」となる。
次に、図6に示すタイミングT22において、マージ/分離部13によって、カウンタ12A,12Bの計数値CA,CBが比較される。そうすると、カウンタ12Aの計数値CAが「1」、カウンタ12Bの計数値CBが「0」であるから、マージ/分離部13によって、計数値の小さいカウンタ12Bに対応する圧縮/伸張器11Bが選択されて、圧縮/伸張器11Bへ、データストリーム7における次の第2単位データ量L2のデータが、圧縮データ8Bとして出力される。そうすると、圧縮データ8Bには、データb1とデータb2の一部が含まれているから、図7(b)に示すように、圧縮/伸張器11Bによって、データb1が伸張されて第1単位データ量L1のデータB1が復元され、伸張データストリーム9Bとして図略の情報処理回路へ出力される。そうすると、カウンタ12Bの計数値CBが加算されて「1」となる。
以下、図6に示すように、タイミングT23〜T32においても同様に、マージ/分離部13によって、カウンタ12A,12Bの計数値CA,CBが比較される。そして、計数値CA,CBの値が異なっているときは、マージ/分離部13によって、計数値が小さいカウンタに対応する圧縮/伸張器が選択されて、当該選択された圧縮/伸張器へ、データストリーム7における次の第2単位データ量L2のデータが、圧縮データとして出力される。また、計数値CA,CBの値が等しいときは、マージ/分離部13によって、優先順位が高く設定されている圧縮/伸張器が選択されて、当該選択された圧縮/伸張器へ、データストリーム7における次の第2単位データ量L2のデータが、圧縮データとして出力される。
そして、マージ/分離部13により選択された圧縮/伸張器によって、第2単位データ量L2の圧縮データが伸張され、さらに伸張されたデータのうち第1単位データ量L1分が復元され、伸張データストリームとして図略の情報処理回路へ出力され、当該選択された圧縮/伸張器に対応するカウンタの計数値が一つ加算される。
これにより、記憶部3に記憶されていた圧縮データA+Bを分離して伸張し、圧縮前の元のデータA1〜A8、及びデータB1〜B8を復元して、伸張データストリーム9A,9Bとしてそれぞれ図略の情報処理回路へ出力することができる。
1 圧縮伸張装置
2 情報処理装置
3 記憶部
4A,4B 非圧縮データストリーム
5A,5B 圧縮データ
6 圧縮データストリーム
7 データストリーム
8A,8B 圧縮データ
9A,9B 伸張データストリーム
11A,11B 圧縮/伸張器
12A,12B カウンタ
13 マージ/分離部
A,B 非圧縮データ
CA,CB 計数値
L1,L2 単位データ量
2 情報処理装置
3 記憶部
4A,4B 非圧縮データストリーム
5A,5B 圧縮データ
6 圧縮データストリーム
7 データストリーム
8A,8B 圧縮データ
9A,9B 伸張データストリーム
11A,11B 圧縮/伸張器
12A,12B カウンタ
13 マージ/分離部
A,B 非圧縮データ
CA,CB 計数値
L1,L2 単位データ量
Claims (8)
- 圧縮対象となる複数の非圧縮データストリームのそれぞれに対応して設けられ、各圧縮部に対応する非圧縮データストリームから、予め設定された非圧縮設定データ量ずつ順次データを取得して圧縮することにより、対応する非圧縮データストリームをそれぞれ並行して圧縮する複数の圧縮部と、
前記複数の圧縮部によってそれぞれ圧縮された圧縮データを、予め設定された圧縮設定データ量ずつ合成すると共に、前記圧縮設定データ量分の圧縮データの合成を行う都度、前記複数の圧縮部のうち、各圧縮部に対応する非圧縮データストリームからの取得済みのデータ量が最小の圧縮部を選択し、当該選択された圧縮部により圧縮される圧縮データのうち前記圧縮設定データ量分のデータを、順次前記圧縮データストリームとして出力することによって、前記複数の圧縮部によってそれぞれ圧縮された圧縮データを一つの圧縮データストリームに合成して出力する合成部と
を備えることを特徴とするデータ圧縮装置。 - 前記複数の圧縮部には、優先順位が予め設定されており、
前記合成部は、
前記圧縮設定データ量分の前記圧縮データストリームの合成を行う場合において、前記取得済みのデータ量が最小となる圧縮部が複数あるとき、前記優先順位に従って圧縮部を選択すること
を特徴とする請求項1記載のデータ圧縮装置。 - 前記複数の圧縮部のそれぞれに対応して設けられ、対応する圧縮部によって前記非圧縮データストリームから前記非圧縮設定データ量のデータが取得された回数を計数する複数の計数部をさらに備え、
前記合成部は、
前記各計数部の計数値を、各計数部に対応する圧縮部の前記取得済みのデータ量として用いること
を特徴とする請求項1又は2記載のデータ圧縮装置。 - 圧縮対象となるプログラムコードをオペコードとオペランドとに分離して、それぞれを前記非圧縮データストリームとして前記圧縮部へ出力するプログラムコード分離部をさらに備えること
を特徴とする請求項1〜3のいずれか1項に記載のデータ圧縮装置。 - 圧縮されたデータを伸張する複数の伸張部と、
前記伸張部の数と同数の圧縮されたデータ列である圧縮データ列のうち、いずれかの圧縮データ列に含まれる予め設定された圧縮設定データ量ずつの複数のデータブロックが合成された圧縮データストリームであって、前記各データブロックが圧縮される前のデータが、当該各データブロックの含まれる圧縮データ列が圧縮される前のデータ列である非圧縮データストリームにおける先頭に近い位置に位置するデータブロックほど、先頭に近い位置になるように各データブロックが配列されている圧縮データストリームから、前記各データブロックを順次取得し、前記複数の伸張部に分配してそれぞれに伸張させることによって、当該伸張部により前記非圧縮データストリームを生成させる分配部とを備え、
前記分配部は、前記各データブロックを前記複数の伸張部へ分配する都度、前記複数の伸張部のうち、前記非圧縮データストリームとして生成済みのデータ量が最小の伸張部を選択すること
を特徴とするデータ伸張装置。 - 前記複数の伸張部には、優先順位が予め設定されており、
前記分配部は、
前記各データブロックの前記複数の伸張部への分配を行う場合において、前記非圧縮データストリームとして生成済みのデータ量が最小となる伸張部が複数あるとき、前記優先順位に従って伸張部を選択すること
を特徴とする請求項5記載のデータ伸張装置。 - 前記複数の伸張部は、前記各データブロックのデータを伸張して得られた非圧縮データ列を、予め設定された非圧縮設定データ量ずつ順次出力することによって、前記複数の非圧縮データストリームを生成し、
前記複数の伸張部のそれぞれに対応して設けられ、対応する伸張部から前記非圧縮設定データ量のデータが出力された回数を計数する複数の計数部をさらに備え、
前記分配部は、前記各計数部の計数値を、前記各伸張部による生成済みの非圧縮データストリームのデータ量として用いること
を特徴とする請求項5又は6記載のデータ伸張装置。 - 圧縮対象となる被圧縮データのデータストリームである複数の非圧縮データストリームのそれぞれに対応して設けられ、対応する非圧縮データストリームから予め設定された非圧縮設定データ量ずつ順次データを取得して圧縮する複数の圧縮部と、
前記複数の圧縮部のそれぞれに対応して設けられ、対応する圧縮部によって前記非圧縮データストリームから前記非圧縮設定データ量のデータが取得された回数を計数する複数の計数部と、
前記複数の圧縮部によってそれぞれ圧縮された圧縮データを合成して、一つの圧縮データストリームとして出力する合成部と、
前記合成部から出力された圧縮データストリームを被伸張データとして記憶する記憶部と、
圧縮されたデータを伸張し、前記非圧縮設定データ量ずつ順次出力することによって、伸張されたデータのデータストリームである非圧縮データストリームを生成する複数の伸張部と、
前記記憶部に記憶されている被伸張データを、前記複数の伸張部に分配して当該各伸張部に前記非圧縮データストリームを生成させる分配部とを備え、
前記複数の計数部は、
さらに、前記複数の伸張部のそれぞれに対応し、前記複数の伸張部によって前記非圧縮データストリームの生成が行われる場合、対応する伸張部から前記非圧縮設定データ量の被圧縮データが出力される回数を計数し、
前記合成部は、
予め設定された圧縮設定データ量分の前記圧縮データストリームの生成を行う都度、前記複数の圧縮部のうち対応する計数部の計数値が最小の圧縮部を選択し、当該選択した圧縮部により圧縮された圧縮データを前記圧縮設定データ量ずつ順次前記圧縮データストリームとして出力することによって、前記圧縮データストリームを合成し、
前記分配部は、
前記被伸張データの前記複数の伸張部への分配を行う都度、分配先の伸張部として前記複数の伸張部のうち対応する計数部の計数値が最小の伸張部を選択すること
を特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007087096A JP2008252163A (ja) | 2007-03-29 | 2007-03-29 | データ圧縮装置、データ伸張装置、及び情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007087096A JP2008252163A (ja) | 2007-03-29 | 2007-03-29 | データ圧縮装置、データ伸張装置、及び情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008252163A true JP2008252163A (ja) | 2008-10-16 |
Family
ID=39976657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007087096A Pending JP2008252163A (ja) | 2007-03-29 | 2007-03-29 | データ圧縮装置、データ伸張装置、及び情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008252163A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011029817A (ja) * | 2009-07-23 | 2011-02-10 | Toshiba Corp | 圧縮伸長装置 |
JP7493001B2 (ja) | 2022-09-13 | 2024-05-30 | 株式会社日立製作所 | 圧縮伸長装置、ストレージシステム、および圧縮伸長方法 |
-
2007
- 2007-03-29 JP JP2007087096A patent/JP2008252163A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011029817A (ja) * | 2009-07-23 | 2011-02-10 | Toshiba Corp | 圧縮伸長装置 |
US8102287B2 (en) | 2009-07-23 | 2012-01-24 | Kabushiki Kaisha Toshiba | Compression/decompression apparatus and compression/decompression method |
JP7493001B2 (ja) | 2022-09-13 | 2024-05-30 | 株式会社日立製作所 | 圧縮伸長装置、ストレージシステム、および圧縮伸長方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4479530B2 (ja) | データ圧縮装置、及びデータ復元装置 | |
US9553604B2 (en) | Information processing system, information compression device, information decompression device, information processing method, and program | |
US20110055441A1 (en) | Data compression and decompression apparatus and data compression and decompression method | |
US9589315B2 (en) | Vertex data compression method and apparatus for compressing vertex data through analyzing channel properties and related vertex data decompression method and apparatus | |
US8102287B2 (en) | Compression/decompression apparatus and compression/decompression method | |
JP2018534811A (ja) | ロスレスデータ圧縮 | |
JP2005065168A (ja) | 画像圧縮装置及び画像圧縮方法 | |
EP1158807B1 (en) | Data stream conversion apparatus and method, variable length coded data stream generation apparatus and method, and camera system | |
JP2008252163A (ja) | データ圧縮装置、データ伸張装置、及び情報処理装置 | |
US8554003B2 (en) | Image data processing apparatus, image data processing method, and computer readable medium | |
CN111061722A (zh) | 一种数据压缩、数据解压缩方法、装置及设备 | |
WO2018068250A1 (zh) | 处理数据的方法、装置、芯片和摄像头 | |
JP2008193263A (ja) | 画像処理方法、画像処理装置、画像処理プログラム、および、記録媒体 | |
JP4090975B2 (ja) | 画像処理装置 | |
USRE45300E1 (en) | Context-adaptive variable length coder with simultaneous storage of incoming data and generation of syntax elements | |
US20140185928A1 (en) | Hardware-supported huffman coding of images | |
JP2021174472A (ja) | ストレージシステム | |
JP6368484B2 (ja) | 圧縮装置、および圧縮方法 | |
JP6105355B2 (ja) | 画像圧縮装置および画像伸張装置,ならびにこれらの動作制御方法 | |
JP5653328B2 (ja) | 画像処理装置及び画像処理システム | |
JP2018185615A (ja) | 電子機器、方法、及びプログラム | |
US20090094392A1 (en) | System and Method for Data Operations in Memory | |
JP5782388B2 (ja) | 画像形成装置 | |
WO2023224024A1 (ja) | ロジックアナライザ回路、集積回路および集積回路システム | |
JP2011139175A (ja) | 画像処理装置および画像処理方法 |