JP4874162B2 - データ展開装置及びデータ展開方法 - Google Patents

データ展開装置及びデータ展開方法 Download PDF

Info

Publication number
JP4874162B2
JP4874162B2 JP2007120177A JP2007120177A JP4874162B2 JP 4874162 B2 JP4874162 B2 JP 4874162B2 JP 2007120177 A JP2007120177 A JP 2007120177A JP 2007120177 A JP2007120177 A JP 2007120177A JP 4874162 B2 JP4874162 B2 JP 4874162B2
Authority
JP
Japan
Prior art keywords
data
expansion
area
dictionary
line
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
Application number
JP2007120177A
Other languages
English (en)
Other versions
JP2008278258A (ja
Inventor
彰久 小野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2007120177A priority Critical patent/JP4874162B2/ja
Priority to US12/078,749 priority patent/US7598891B2/en
Priority to TW97114664A priority patent/TWI377795B/zh
Priority to KR20080039009A priority patent/KR100956960B1/ko
Priority to CN2008100959272A priority patent/CN101340537B/zh
Publication of JP2008278258A publication Critical patent/JP2008278258A/ja
Application granted granted Critical
Publication of JP4874162B2 publication Critical patent/JP4874162B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B7/00Recording or reproducing by optical means, e.g. recording using a thermal beam of optical radiation by modifying optical properties or the physical structure, reproducing using an optical beam at lower power by sensing optical properties; Record carriers therefor
    • G11B7/004Recording, reproducing or erasing methods; Read, write or erase circuits therefor
    • G11B7/005Reproducing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は、web、HD DVD、Blu−rayディスクなどの光ディスク再生装置で用いられる、PNG方式にて圧縮された画像データを展開するためのデータ展開装置及びデータ展開方法に関する。
近年、新たな画像データのフォーマットとしてPNG(Portable Network Graphics)フォーマットが知られるようになった。このフォーマットは、web、次世代DVDなどに広く用いられている。PNGデータの展開は、ハフマン(Huffman)復号、LZ77展開、PNG逆フィルタ演算の各処理を行うことで実現される(例えば特許文献1参照)。
図12は、従来のLZ77展開装置を示す図である。LZ77展開装置700は、LZ77展開部701、DMA702、内部辞書メモリ703、及びDMA704を有する。LZ77展開部701は、ハフマン復号結果が入力される。LZ77展開部701は、以前の復号結果をメモリに辞書として蓄え、以前と同一のデータを出力する際はその辞書を参照することで、データを伸長する。これより、LZ77展開装置は、辞書に相当するメモリを備える必要がある。
加えて、辞書の容量は最大32KBであり、たとえばLSIなどの用途では、辞書用メモリをすべてLSIに内蔵することはコストの面で現実的ではない。そこで、図12に示すように、辞書メモリの一部をLSI内部辞書メモリ703に、残りを外部メモリ710の外部辞書領域711に格納する手法が考えられる。こうすることで、性能劣化をできるだけ少なくした上でLSIのコストを抑制することができる。
DMA702は、LZ77展開部701が外部辞書を参照する際にデータを読み出す。DMA704は、内部辞書メモリ703に書き込まれた内容の一部又は全部を外部辞書領域711に書き込む(フラッシュ)する。
図13は、従来のPNG逆フィルタ演算装置を示す図である。PNG逆フィルタ演算装置800は、PNG逆フィルタ801、ラインメモリ802及びDMA803を有する。PNG逆フィルタ801は、直前に出力した1ライン分の画像データと、LZ77展開結果との間で算術演算を行う。これより、PNG逆フィルタ演算装置800は、直前に出力した1ライン分のデータを蓄えておくラインメモリ802を備える必要がある。LSIなどの用途では、コスト抑制の観点から、直前に出力した1ライン分のデータは外部メモリ810上に置くことも考えられるが、処理性能の観点からは、図13に示すように、できるだけLSIの内蔵メモリとすることが望ましい。なお、PNG逆フィルタ演算処理結果は画像データとして外部メモリ810の画像データ出力領域811に格納される。
このような背景に基づき、特に高い処理性能を求める場合は、PNG展開装置は、LZ77用辞書メモリの一部(以下、内部辞書という。)と、PNG逆フィルタ演算用ラインメモリ(以下、ラインメモリという。)を備えることが処理性能向上の観点から大きな意義がある。
図14は、従来のPNGデータ展開装置を示す図である。PNGデータ展開装置900は、LZ77展開部901、DMA902、内部辞書メモリ903、DMA904、逆PNGフィルタ905、DMA906、及びラインメモリ907を有する。このPNGデータ展開装置900は、外部辞書領域911及び画像データ出力領域912を有する外部メモリ910に接続されている。上述したように、PNGデータ展開装置900は、LZ77展開結果を辞書として格納する内部辞書メモリ903、及び直前に出力した画像データを格納するラインンメモリ907を有している。内部辞書メモリ903に保存できないデータは、DMA904により外部辞書領域911に書き込まれる。LZ77展開部901は、外部辞書領域911又は内部辞書メモリ903にアクセスして以前の展開結果を参照する。PNG逆フィルタ905は、ラインメモリ907から直前に出力した画像データを読み出し、当該データとLZ77展開部901の展開結果とを逆PNGフィルタ処理して画像データを生成する。
特開2003−92684号公報
しかしながら、PNGデータ展開装置に、内部辞書としてLZ77辞書用メモリの一部と、PNG逆フィルタ演算用ラインメモリを備える場合、いくつかの問題点がある。第1に、PNG逆フィルタ演算用メモリに未使用領域が生じることである。この問題が発生する原因は、扱う画像毎に1ライン分のデータ量が可変であるにもかかわらず、メモリ容量は一定のためである。
第2に、処理性能が遅いことである。この問題が発生する原因は、LZ77辞書用メモリの一部分のみを内部辞書として備えるため、辞書参照時に内部辞書にヒットしない場合、外部メモリへのアクセスが生じるためである。
本発明に係るデータ展開装置は、以前の展開結果を辞書とし以前と同一データを出力する際は当該辞書を参照してデータを伸張する展開部と、前記展開部の展開結果と直前に出力した画像データとで算術演算を行ない画像データを出力する演算部と、前記展開部が参照する以前の展開結果を格納する内部辞書領域及び前記演算部が使用する直前に出力した画像データを格納するラインデータ領域を有する共有メモリとを有し、前記共有メモリは、入力データを解析した解析結果に基づき前記内部辞書領域及び前記ラインデータ領域の容量が設定されるものである。
本発明にかかるデータ展開方法は、入力データを解析し、共有メモリにおける内部辞書領域及びラインデータ領域を設定し、前記共有メモリの前記内部辞書領域に格納された以前の展開結果を辞書とし以前と同一データを出力する際は当該内部辞書領域に格納されている内部辞書を参照して入力データを展開し、この展開結果と、前記共有メモリの前記ラインデータ領域に格納された直前に出力した画像データとで算術演算を行ない画像データを出力するものである。
本発明においては、入力データを解析し、共有メモリにおける内部辞書領域及びラインデータ領域を設定するため、入力データに応じて異なる大きさのラインデータを格納する領域として適切な容量を割り当てることができ、共有メモリに未使用領域は発生するのを防止し、内部辞書領域を最大限大きな容量とすることができる。
本発明によれば、内部メモリを最大限有効に使用することで展開速度を向上させたデータ展開装置及びデータ展開方法を提供することができる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、PNG方式で圧縮されたPNGデータを伸張するデータ展開装置に適用したものである。本実施の形態においては、ラインメモリのうち未使用領域を内部辞書として用いることで、可能な限り内部辞書の容量を大きくすることにより、展開速度を向上させるものである。
図1は、本発明の実施の形態にかかるPNGデータ展開装置を示すブロック図である。PNGデータ展開装置10は、内部メモリ2、LZ77展開部3、PNG逆フィルタ4、及びDMA5、6、7を有する。
LZ77展開部3は、以前の展開結果を辞書とし以前と同一データを出力する際はその辞書を参照してデータを伸張するもので、内部メモリ2に以前の展開結果を保存する。
PNG逆フィルタ4は、LZ77展開部3の展開結果と、自身が直前に出力した1ライン分の画像データとで算術演算を行ない1ライン分の画像データを出力する。自身が直前に出力した1ライン分の画像データは、内部メモリ2のラインデータ領域に格納されている。
内部メモリ2は、内部辞書領域及びラインデータ領域を有する。LZ77展開部3は、内部メモリ2を辞書の用途で使用する。PNG逆フィルタ4は、内部メモリ2をラインメモリの用途で使用する。LZ77展開部3、PNG逆フィルタ4が内部メモリ2を使用する領域の容量、すなわち、使用開始位置及びそのサイズは画像ごとに、PNGデータ展開装置10に接続された制御装置1により設定される。
DMA5は、外部メモリのデータを内部メモリ2へ読み込むための装置である。LZ77展開部3が外部辞書のデータを参照する際に使用する。DMA5は、LZ77展開部3又は制御装置1により制御される。
DMA6、DMA7は、内部メモリ2に保存されているデータを外部メモリへ書き出すためのDMAである。DMA6は、内部メモリ2又は制御装置1により制御される。DMA7は、PNG逆フィルタ4又は制御装置1により制御される。DMA6は、内部辞書領域があふれないように、適宜内部辞書領域の内容を外部メモリの外部辞書領域へ書き出す(フラッシュする)。DMA7は、PNG逆フィルタ4により生成された画像データを、外部メモリの画像出力領域へ書き出す。
次に、PNGデータ展開装置の動作について説明する。図2は、制御装置の動作を示すフローチャート、図3は、L77展開部の動作を示すフローチャート、図4は、PNG逆フィルタの動作を示すフローチャートである。先ず、制御装置1の動作について説明する。図2に示すように、制御装置1は、PNGデータ展開装置の動作開始に先立ち、PNGデータを解析し、1ラインのデータ量を算出する。制御装置1は、この1ラインのデータ量に必要十分なメモリ領域を、PNG逆フィルタ4に対し設定する(ステップS1)。内部メモリ2の当該メモリ領域は、ラインメモリとしてPNG逆フィルタ4が使用する。また、内部メモリ2の総容量から1ラインのデータ量を引いた残りのメモリ領域を、L77展開部3に対し設定する。内部メモリ2の当該メモリ領域は、内部辞書としてLZ77展開部3が使用する。
次に、内部辞書の外部メモリへの書き出し(フラッシュ)が必要か否かを判断し(ステップS3)、必要でない場合は、LZ77展開部3及びPNG逆フィルタを起動する。一方、内部辞書のラッシュが必要の場合は、外部メモリの外部辞書領域に内部辞書領域のデータを書き出す(ステップS7)。そして、LZ77展開部3に対し、外部メモリの外部辞書領域に書き出した容量を設定する(ステップS8)。その後、LZ77展開部3及びPNG逆フィルタ4の起動を行なう。そして、1ライン処理完了したら(ステップS5)、次のラインの処理を行い、全ライン処理が終わるまでステップS3からの処理を繰り返す。
次に、LZ77展開部3の動作について説明する。LZ77展開部3は、動作開始すると(ステップS11)、辞書参照中か否かを判断し(ステップS12)、参照中でない場合は、ハフマン復号結果を受け取る。そして、LZ77展開するために辞書参照が必要か否かを判断する(ステップS14)。辞書参照が必要である場合、内部辞書に目的のデータがあるか否かを判断する(ステップS18)。内部辞書に目的のデータがある場合は、内部辞書領域から1バイトを読み出す(ステップS20)。一方、目的のデータが外部メモリの外部辞書領域にある場合は、DMA5を介して外部メモリにアクセスし、外部辞書領域から1バイトを読み出す(ステップS19)。そして。内部辞書の参照結果に基づきLZ77展開を行なうと、その展開結果(1バイト)を内部メモリ2の内部辞書領域に書き込む(ステップS15)。同時に、PNG逆フィルタ4にも1バイト出力する(ステップS16)。こうして1ラインの処理が終了するまで、ステップS12からの処理を繰り返す。
内部メモリ2の内部辞書の領域は、L77展開を繰り返していくとそのうち一杯になってあふれてしまう。そこでこれを防止するため、制御装置1又は内部メモリ2の制御のもと、適宜内部メモリ2の内部辞書の内容の全部又は一部を、DMA6を通じて外部メモリの外部辞書領域へ書き出す(フラッシュする)。この結果、外部辞書領域へ書き出しが完了した内部辞書の領域は上書きが可能となる。これにより、LZ77展開部3は再びこの領域を新たな内部辞書領域として使用することができる。
次に、PNG逆フィルタ4の動作について説明する。PNG逆フィルタ4は、動作開始する(ステップS21)と、現在の入力データが第1のラインか否か判断し(ステップS22)、第1のラインでない場合は、直前のラインデータが格納されている内部メモリ2のラインデータ領域にアクセスする。そして、1バイトを読み出す(ステップS23)。同時に、LZ77展開部3より展開結果を1バイト受け取る。なお、第1のラインの場合は、内部メモリ2にはデータが格納されていないため、LZ77展開部3より展開結果を受け取る。
そして、これらのデータに基づきPNG逆フィルタ演算を行なって現在のラインデータを算出する(ステップS25)。演算結果(1バイト)は、内部メモリ2のラインデータ領域へ出力する(ステップS26)と共に、DMA7を介して外部メモリの画像出力領域に1バイト書き込む(ステップS27)。そして、1ラインが終了するまでステップS22からの処理を繰り返す。
ここで、1ラインのデータ量は、展開するPNG画像データ毎に異なる。そのため、制御装置1による内部メモリ2の領域振り分けは、PNG画像データごとに行う。
本実施の形態においては、次の2つの効果を奏する。先ず、第1の効果は、展開する画像によらず、メモリ空間の未使用領域を発生させないことである。この理由は、LZ77展開部3、PNG逆フィルタ4共に、使用するメモリ領域の先頭位置とサイズを可変とすること、及び両メモリ空間を共有のメモリである内部メモリ2上に有することにより、ラインデータを格納する領域は、画像データごとに1ライン分のデータ量に設定することができ、残りをすべての領域を内部辞書領域として割り振ることができるためである。
第2の効果としては、PNGデータ展開性能を向上させることができることである。この理由は、LZ77展開時に内部辞書を参照する確率が増大し、外部辞書参照時のメモリレーテンシによる性能低下を抑制できるためである。具体的には、1ラインのデータ量が小さい画像を扱う際は、ラインデータ領域に割り当てる領域は小さくて済み、結果として内部辞書領域を大きくとることができ、これにより内部辞書を参照する確率が増大する。また、一般に、外部メモリにある辞書を参照する際は、装置と外部メモリとの間にメモリバスなどが介在するためデータ転送時に相応のレーテンシがかかり、内部辞書の参照に対して性能が劣化するためである。
次に、本実施の形態の具体例について説明する。図5は、本実施の形態の具体例にかかるPNGデータ展開装置100を示す図である。PMGデータ展開装置100は、制御装置200及び外部メモリ300と接続されている。
PNGデータ展開装置100は、PNG元データを読み出し、ハフマン復号を行うハフマン復号部101、内部メモリ102、LZ77展開部103、PNG逆フィルタ104及びDMA105〜107を有する。DMA105は、外部メモリ300の外部辞書領域301から辞書を読み出すための装置であり、DMA106は、内部辞書を、外部辞書領域301へフラッシュするための装置であり、DAM107は、PNG逆フィルタ104が生成した画像データを、画像データ出力領域302へ書き出すための装置である。内部メモリ102のメモリ容量は、例えば16KBである。
次に、本具体例にかかるPNGデータ展開装置の動作について説明する。図6乃至9は、PNGデータ展開装置がデータ展開中の内部メモリの様子を示す図である。本具体例においては、1ラインのデータ量が4KBの画像を展開する場合を考える。制御装置200は、展開しようとしているPNG画像を解析し、1ラインの容量が4KBであることがわかる。これは、実際にPNGデータの展開をせずとも、PNG規格に従ったごく簡単な解析で求めることができる。
次に、制御装置200は、PNG逆フィルタ104に対し、ラインデータ領域として開始位置0、容量4KBのメモリ領域を使うように指示する。また、LZ77展開部103に対し、内部辞書として開始位置4KB、容量12KBのメモリ領域を使うように指示する。
制御装置200は、第1のラインを展開するため、ハフマン復号部101、LZ77展開部103及びPNG逆フィルタ104の動作を開始させる。ハフマン復号部101は、PNG元データを読み出し、ハフマン復号結果をL77展開部103へ出力する。L77展開部103は、ハフマン復号結果を受け取り、これをLZ77展開し、結果を内部メモリ102の内部辞書領域へ書き出す。LZ77展開の際、辞書を引く必要が生じた場合、内部辞書領域より適宜辞書内容を読み出し、展開動作を進める。PNG逆フィルタ104は、第1のラインのPNG逆フィルタ演算を行うため、L77展開部103より第1のラインのLZ77展開結果を入力し、PNG逆フィルタ演算を行う。
演算結果は、DMA107経由で外部メモリ300の画像データ出力領域302へ書き出す。また、同じデータを、内部メモリ102のラインデータ領域へ書き出す。
77展開部103、PNG逆フィルタ104が第1のラインのPNG逆フィルタ演算を行った後、内部メモリ102は図6のようになる。ラインデータ領域には、画像データの第1のラインと等しい、4KBのデータ(第1のラインPNG逆フィルタ演算結果)が書き込まれている。内部辞書領域には4K+1Bのデータ(第1のラインLZ77展開結果)が書き込まれている。内部辞書領域に存在するデータ容量は、PNG規格より、1ライン分のデータ量+1バイトとなる。また、外部メモリ300の画像データ出力領域には、画像データ(第1のラインPNG逆フィルタ演算結果)の第1ラインとして4KBのデータが書き込まれる。
続いて、第2のラインを展開するため、制御装置200はハフマン復号部101とL77展開部103、PNG逆フィルタ104の動作を開始させる。L77展開部103は、LZ77展開結果を内部メモリ102の内部辞書へ書き込む際、第1のラインを処理した結果の続きから書き込む。これは、直前32KBの領域が辞書として参照される可能性があるため、第1のラインを処理した結果を残しておく必要があるためである。また、第1のライン同様、辞書を引く必要が生じた場合、内部辞書より適宜辞書内容を読み出し、展開動作を進める。
PNG逆フィルタ104は、第2のラインのPNG逆フィルタ演算を行うため、L77展開部103より第2のラインのLZ77展開結果を受け取り、さらに、内部メモリ102のラインデータ領域より、第1のラインのデータを読み出す。これら2つのデータよりPNG逆フィルタ演算を行う。
演算結果は、DMA107経由で外部メモリ300の画像出力領域へ書き出す。また、同じデータを、内部メモリ102のラインデータ領域へ書き出す。このとき、内部メモリ102のラインデータ領域への書き込みは、すでにある第1ラインのデータへ上書きしてもかまわない。なぜなら、上書きされるデータは、すでにPNG逆フィルタ104により読み出され、PNG逆フィルタ処理に用いられた後のデータだからである。
77展開部103、PNG逆フィルタ104が第2のラインのPNG逆フィルタ演算を行った後、内部メモリ102の内容は図7のようになる。ラインデータ領域には、画像の第2のラインと等しい4KBのデータ(第2のラインPNG逆フィルタ演算結果)が書き込まれている。内部辞書領域には8K+2Bのデータ(第1のラインLZ77展開結果、第2のラインLZ77展開結果)が書き込まれている。また、外部メモリ300の画像データ出力領域302には、画像の第1のラインとして4KBのデータ(第1のラインPNG逆フィルタ演算結果)が、第2のラインとして4KBのデータ(第2のラインPNG逆フィルタ演算結果)が書き込まれる。
続いて、第3のラインを展開するが、内部メモリ102の内部辞書領域には、第3のラインを展開するための十分なスペースがない。具体的には、第3のラインを展開するには内部辞書領域に4K+1Bの空領域が必要だが、内部辞書領域には4K−2Bの空き領域しかない。このため、制御装置200は、内部辞書の一部を外部メモリ300の外部辞書領域301へフラッシュする。本具体例においては、ここでは内部辞書領域のデータのうちもっとも前に書き込まれた512バイトをフラッシュする。フラッシュ動作完了後の内部メモリは図8のようになる。
この結果、LZ77の辞書は外部メモリ300の外部辞書領域301と内部メモリ102の内部辞書領域に分割して置かれる。したがって、これ以降、L77展開部103は、LZ77展開時に辞書を参照する場合、所望のデータが内部辞書領域にあるか、外部辞書領域にあるかを判定し、読み出す辞書を選択する。内部辞書を参照する場合は第2のラインまでの処理と同様だが、外部辞書を参照する場合はDMA105を介して外部メモリ300の外部辞書領域301からデータを読み出す。
内部辞書のフラッシュ動作後、第3のラインを展開するため、制御装置200は、ハフマン復号部101とL77展開部103、PNG逆フィルタ104の動作を開始させる。L77展開部103は、LZ77展開結果を内部メモリ102の内部辞書領域へ書き込む際、第2のラインを処理した結果の続きから書き込む。内部辞書下端まで書き込み終わると、L77展開部103は、内部メモリ102の内部辞書領域をリングバッファの要領で、上端より書き込みを継続する。内部辞書上端の領域は、外部メモリ300の外部辞書領域へフラッシュ済みなので上書きして構わない。また、辞書を引く必要が生じた場合、前述の通り、外部辞書領域301、又は内部辞書領域より適宜辞書内容を読み出し、展開動作を進める。
PNG逆フィルタ104は、第2のラインに対する動作同様、第3のラインのPNG逆フィルタ演算を行うため、L77展開部103より第3のラインのLZ77展開結果を受け取り、さらに、内部メモリ102のラインデータ領域より、第2のラインのデータを読み出す。これら2つのデータよりPNG逆フィルタ演算を行う。
演算結果は、第2のラインに対する動作同様、DMA107経由で外部メモリ300の画像データ出力領域302へ書き出す。また、同じデータを、内部メモリ102のラインデータ領域へ書き出す。このとき、内部メモリ102のラインデータ領域への書き込みは、すでにある第2のラインのデータへ上書きしてもかまわない。なぜなら、上書きされるデータは、すでにPNG逆フィルタ104により読み出され、PNG逆フィルタ処理に用いられた後のデータだからである。
77展開部103、PNG逆フィルタ104が第3のラインのPNG逆フィルタ演算を行った後の内部メモリ102は、図9のようになる。ラインデータ領域には、画像の第3のラインと等しい4KBのデータ(第3のラインPNG逆フィルタ演算結果)が書き込まれている。内部辞書領域には12K+3−512Bのデータ(第1のラインLZ77展開結果の一部、第2のラインLZ77展開結果、第3のラインLZ77展開結果)が存在する。ここで、512Bは、第3のライン展開開始前に外部辞書領域301へフラッシュされた容量である。また、外部メモリ300の画像データ出力領域302には、画像の第1のラインとして4KBのデータ(第1のラインPNG逆フィルタ演算結果)が、第2のラインとして4KBのデータ(第2のラインPNG逆フィルタ演算結果)が、第3のラインとして4KBのデータ(第3のラインPNG逆フィルタ演算結果)が書き込まれる。また、外部メモリ300の外部辞書領域301には、512Bのデータが書き込まれている。以降、PNGデータの全ラインを展開するまで処理を継続する。
本具体例においては、PNGデータ展開装置100は、内部辞書領域及びラインデータ領域を有する内部メモリと、内部辞書領域の容量と開始位置を画像ごとに可変とできるようなLZ77展開部103と、ラインデータ領域の容量と開始位置を画像ごとに可変とできるようなPNG逆フィルタ104とを有する。さらに、L77展開部103及びPNG逆フィルタ104に対し、内部辞書領域の開始位置及び容量、ラインデータ領域の開始位置及び容量を画像ごとに設定する制御装置200に接続される。
このことにより、PNGデータ展開装置100は、PNGデータ展開開始に先立ち、制御装置200がPNGデータを解析し、出力画像の1ラインのデータ量を算出する。制御装置200は、この1ラインのデータ量を元に、過不足なく内部メモリ102をラインデータ領域の用途で使うよう、PNG逆フィルタ104のラインデータ領域開始位置及び容量を設定する。さらに、制御装置200は、内部メモリの総容量より、1ラインのデータ量を減算した分の容量のメモリ領域を内部辞書領域として用いるようLZ77展開部103の内部辞書開始位置及び容量を設定する。その結果、内部メモリ102を未使用領域なく使用でき、内部辞書領域の容量を可能な限り大きく取ることができる。よって展開する画像によらず、メモリ空間の未使用領域を発生させないばかりでなく、PNGデータ展開性能を向上させることができる。
図10は本実施の形態にかかる変形例を示す図である。本例は、1ラインのデータ量が2KBの画像を展開するものである。制御装置200は、展開しようとしているPNG画像を解析し、1ラインの容量が2KBであることを認識する。次に、制御装置200は、PNG逆フィルタ104に対し、ラインデータ領域として開始位置0、容量2KBのメモリ領域を使用するように指示する。また、L77展開部103に対し、内部辞書領域として開始位置2KB、容量14KBのメモリ領域を使用するように指示する。その他は、上述と同様に、PNG画像の展開を行う。ラインデータ領域を4KBにするのに比べ内部辞書領域を大きく確保することができ、LZ77展開の辞書参照時に内部辞書へのヒット率が高くなり、高速なPNG展開処理を期待することができる。
図11は、本実施の形態にかかる他の変形例を示す図である。本変形例においては、PNG逆フィルタ404への入力が、内部メモリ402からの読み出しで実現する。本例においては、L77展開部403が内部辞書領域へ書き出すデータとPNG逆フィルタ404へ出力するデータが、ともにLZ77展開結果であり等しいことを利用する。すなわち、内部メモリ403の内部辞書領域が、L77展開部403とPNG逆フィルタ404の間の入出力バッファを兼ねる。つまり、L77展開部403からPNG逆フィルタ404へのLZ77展開結果出力信号線が省略され、逆フィルタ404は内部メモリ402の内部辞書より適宜LZ77展開結果を読み出し、PNG逆フィルタ演算を実行する。PNG逆フィルタ404がPNG逆フィルタ演算を開始する際は、制御装置200により、適切な内部メモリ402の読み出し開始位置及び容量、並びに動作開始タイミングが指示される。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
本発明の実施の形態にかかるPNGデータ展開装置を示すブロック図である。 本発明の実施の形態にかかるPNGデータ展開装置における制御装置の動作を示すフローチャート、 本発明の実施の形態にかかるPNGデータ展開装置におけるL77展開部の動作を示すフローチャートである。 本発明の実施の形態にかかるPNGデータ展開装置におけるPNG逆フィルタの動作を示すフローチャートである。 本発明の実施の形態の具体例にかかるPNGデータ展開装置を示す図である。 PNGデータ展開装置がデータ展開中の内部メモリの様子を示す図である。 同じく、PNGデータ展開装置がデータ展開中の内部メモリの様子を示す図である。 同じく、PNGデータ展開装置がデータ展開中の内部メモリの様子を示す図である。 同じく、PNGデータ展開装置がデータ展開中の内部メモリの様子を示す図である。 本発明の実施の形態にかかる変形例を示す図である。 本発明の実施の形態にかかる他の変形例を示す図である 従来のLZ77展開装置を示す図である。 従来のPNG逆フィルタ演算装置を示す図である。 従来のPNGデータ展開装置を示す図である。
符号の説明
1、200 制御装置
2、102、403 内部メモリ
3、103 LZ77展開部
4、104、404 PNG逆フィルタ
10、100 データ展開装置
101 ハフマン復号部
105〜107 DMA
300 外部メモリ
301 外部辞書領域
302 画像データ出力領域

Claims (12)

  1. 以前の展開結果を辞書とし以前と同一データを出力する際は当該辞書を参照してデータを伸張する展開部と、
    前記展開部の展開結果と直前に出力した画像データとで算術演算を行ない画像データを出力する演算部と、
    前記展開部が参照する以前の展開結果を格納する内部辞書領域及び前記演算部が使用する直前に出力した画像データを格納するラインデータ領域を有する共有メモリとを有し、
    前記共有メモリは、入力データを解析した解析結果に基づき前記内部辞書領域及び前記ラインデータ領域の容量が設定されるデータ展開装置。
  2. 前記共有メモリは、画像データごとに前記内部辞書領域及びラインデータ領域の容量が設定される
    ことを特徴とする請求項1記載のデータ展開装置。
  3. 前記展開部はハフマン復号結果を展開し、
    前記共有メモリは、PNG方式で圧縮されたPNGデータを解析した解析結果に基づき前記内部辞書領域及び前記ラインデータ領域の容量が設定される
    ことを特徴とする請求項1又は2記載のデータ展開装置。
  4. PNGデータをハフマン復号するハフマン復号部を有し、
    前記展開部は、前記ハフマン復号部の復号結果をLZ77展開するLZ77展開部である
    ことを特徴とする請求項1乃至3のいずれか1項記載のデータ展開装置。
  5. 前記演算部は、前記LZ77展開結果と前記共有メモリに保存されている直前に出力した1ライン分の画像データとをPNG逆フィルタ処理するPNG逆フィルタ処理部である
    ことを特徴とする請求項4記載のデータ展開装置。
  6. 前記内部辞書領域と共に、前記LZ77展開部の展開結果が格納される外部辞書領域を有する外部メモリと接続され、
    前記L77展開部は、必要に応じて外部辞書領域を参照する
    ことを特徴とする請求項4又は5記載のデータ展開装置。
  7. 前記LZ77展開部は、前記LZ77展開部の展開結果を前記内部辞書領域に書き込み、
    前記PNG逆フィルタは、前記内部辞書領域にアクセスして前記展開結果を読み出す
    ことを特徴とする請求項4乃至6のいずれか1項記載のデータ展開装置。
  8. 入力データを解析し、共有メモリにおける内部辞書領域及びラインデータ領域を設定し、
    前記共有メモリの前記内部辞書領域に格納された以前の展開結果を辞書とし以前と同一データを出力する際は当該内部辞書領域に格納されている内部辞書を参照して入力データを展開し、
    この展開結果と、前記共有メモリの前記ラインデータ領域に格納された直前に出力した画像データとで算術演算を行ない画像データを出力するデータ展開方法。
  9. 画像データごとに前記内部辞書領域及びラインデータ領域の容量が設定される
    ことを特徴とする請求項8記載のデータ展開方法。
  10. PNGデータをハフマン復号し、
    前記ハフマン復号結果を前記内部辞書領域に保存されている前記内部辞書を参照してLZ77展開し、
    LZ77展開結果と前記ラインデータ領域に保存されている前記直前に出力した1ライン分の画像データとをPNG逆フィルタ処理して前記画像データを出力する
    ことを特徴とする請求項8又は9記載のデータ展開方法。
  11. 必要に応じて、前記内部辞書領域と共に、前記LZ77展開結果が格納される外部辞書領域を有する外部メモリにアクセスし、当該外部辞書領域に格納された外部辞書を参照してLZ77展開する
    ことを特徴とする請求項10記載のデータ展開方法。
  12. 前記LZ77の展開結果を前記内部辞書領域に書き込み、
    前記内部辞書領域にアクセスして前記展開結果を読み出しPNG逆フィルタ処理する
    ことを特徴とする請求項10又は11記載のデータ展開方法。
JP2007120177A 2007-04-27 2007-04-27 データ展開装置及びデータ展開方法 Expired - Fee Related JP4874162B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007120177A JP4874162B2 (ja) 2007-04-27 2007-04-27 データ展開装置及びデータ展開方法
US12/078,749 US7598891B2 (en) 2007-04-27 2008-04-04 Data development device and data development method
TW97114664A TWI377795B (en) 2007-04-27 2008-04-22 Data development device and data development method
KR20080039009A KR100956960B1 (ko) 2007-04-27 2008-04-25 데이터 전개 디바이스 및 데이터 전개 방법
CN2008100959272A CN101340537B (zh) 2007-04-27 2008-04-25 数据展开装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007120177A JP4874162B2 (ja) 2007-04-27 2007-04-27 データ展開装置及びデータ展開方法

Publications (2)

Publication Number Publication Date
JP2008278258A JP2008278258A (ja) 2008-11-13
JP4874162B2 true JP4874162B2 (ja) 2012-02-15

Family

ID=39888238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007120177A Expired - Fee Related JP4874162B2 (ja) 2007-04-27 2007-04-27 データ展開装置及びデータ展開方法

Country Status (5)

Country Link
US (1) US7598891B2 (ja)
JP (1) JP4874162B2 (ja)
KR (1) KR100956960B1 (ja)
CN (1) CN101340537B (ja)
TW (1) TWI377795B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489199B2 (en) 2012-12-28 2016-11-08 Intel Corporation Vector compare instructions for sliding window encoding
US8947270B2 (en) 2013-06-29 2015-02-03 Intel Corporation Apparatus and method to accelerate compression and decompression operations
US9813079B2 (en) 2016-02-29 2017-11-07 International Business Machines Corporation High-throughput compression of data
JP6648620B2 (ja) 2016-04-19 2020-02-14 富士通株式会社 符号化プログラム、符号化装置および符号化方法
CN107105266A (zh) * 2017-05-22 2017-08-29 郑州云海信息技术有限公司 一种png图像的解码方法、装置及系统
CN116760996B (zh) * 2023-05-30 2024-02-23 广东匠芯创科技有限公司 Png图像解码方法及其硬件架构、电子设备、存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0476727A (ja) * 1990-07-18 1992-03-11 Fujitsu Ltd データ復元方式
US5729228A (en) * 1995-07-06 1998-03-17 International Business Machines Corp. Parallel compression and decompression using a cooperative dictionary
US6195674B1 (en) * 1997-04-30 2001-02-27 Canon Kabushiki Kaisha Fast DCT apparatus
JPH11122498A (ja) * 1997-10-16 1999-04-30 Matsushita Denso System Kk 画像処理装置
JP2003087798A (ja) * 2001-09-13 2003-03-20 Canon Inc 動画像圧縮装置及び方法
JP2003092684A (ja) * 2001-09-17 2003-03-28 Canon Inc 画像符号化装置、及び画像符号化方法、並びにプログラム、記憶媒体
JP2005234687A (ja) * 2004-02-17 2005-09-02 Sony Corp メモリ管理方法、画像処理装置およびメモリ管理プログラム
US20060007237A1 (en) * 2004-07-08 2006-01-12 Eric Jeffrey Apparatuses and methods for sharing a memory between display data and compressed display data

Also Published As

Publication number Publication date
KR100956960B1 (ko) 2010-05-11
TW200908571A (en) 2009-02-16
US20080270429A1 (en) 2008-10-30
US7598891B2 (en) 2009-10-06
CN101340537A (zh) 2009-01-07
CN101340537B (zh) 2011-11-02
TWI377795B (en) 2012-11-21
JP2008278258A (ja) 2008-11-13
KR20080096474A (ko) 2008-10-30

Similar Documents

Publication Publication Date Title
JP4874162B2 (ja) データ展開装置及びデータ展開方法
JP3825465B2 (ja) メモリカード及びメモリカードシステム
US10049005B2 (en) Flash memory control apparatus utilizing buffer to temporarily storing valid data stored in storage plane, and control system and control method thereof
JP4628750B2 (ja) バッファメモリを内蔵したフラッシュメモリ装置及びフラッシュメモリシステム
JP2006172458A (ja) 不揮発性保存装置にマルチメディアデータをブロック単位で保存する方法及び装置
JP2007299216A (ja) 不揮発性フラッシュメモリを用いる記憶装置とその制御方法
JP2010238107A (ja) データ記憶プログラム、方法、及び情報処理装置
JP2008046964A (ja) 情報記録装置及びその制御方法
US20100235564A1 (en) Semiconductor memory device
JP2006236239A (ja) データ処理システム及びデータ伸長方法
JP4459641B2 (ja) シーケンシャルバッファを内蔵してdspのデータアクセス性能を向上させるコンピュータシステム及びそのコンピュータシステムのアクセス方法
WO2011007511A1 (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム
JP5018060B2 (ja) 情報処理装置および情報処理方法
JP2010026584A (ja) メモリコントローラおよび不揮発性記憶装置
JP2010079535A (ja) データアクセス装置
JP2007206924A (ja) 演算処理システム
JP3747213B1 (ja) シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ
JP2005182538A (ja) データ転送装置
JP4748807B2 (ja) 復号回路
JP5515218B2 (ja) データアクセス方法およびデータアクセス装置
JPH0573413A (ja) キヤツシユメモリ・データ制御装置
JP2008130092A (ja) データを管理する装置及び方法
JP4479370B2 (ja) プロセッサ
JP6007628B2 (ja) キャッシュ制御装置およびキャッシュ制御方法
JP2002268903A (ja) プログラム管理方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111027

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4874162

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees