JP5017324B2 - 圧縮伸長装置 - Google Patents

圧縮伸長装置 Download PDF

Info

Publication number
JP5017324B2
JP5017324B2 JP2009172057A JP2009172057A JP5017324B2 JP 5017324 B2 JP5017324 B2 JP 5017324B2 JP 2009172057 A JP2009172057 A JP 2009172057A JP 2009172057 A JP2009172057 A JP 2009172057A JP 5017324 B2 JP5017324 B2 JP 5017324B2
Authority
JP
Japan
Prior art keywords
data
sub
compression
block
block data
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
JP2009172057A
Other languages
English (en)
Other versions
JP2011029817A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009172057A priority Critical patent/JP5017324B2/ja
Priority to US12/721,008 priority patent/US8102287B2/en
Publication of JP2011029817A publication Critical patent/JP2011029817A/ja
Application granted granted Critical
Publication of JP5017324B2 publication Critical patent/JP5017324B2/ja
Expired - Fee Related 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は、データを圧縮または伸長する圧縮伸長装置に関する。
近年、電子機器が取り扱うデータ量は増大しており、これにともない、外部メモリへの移動対象となるデータのデータ量も大きくなっている。そこで、従来から、装置内部のバッファから外部メモリへデータを移動する場合には、データを圧縮してからバスを介して外部メモリに書込み、外部メモリから装置内部のバッファへデータを移動する場合には、バスを介して外部メモリから読み出した圧縮データを伸長してから内部バッファに書き込むという装置構成が採用されている。
たとえば、画像データの場合には、非圧縮で8ビットの大きさを有する1画素ずつ、逐次的に圧縮伸長を行なう圧縮伸長アルゴリズムを用いてブロック形状の画像データを圧縮伸長している。そして、1サイクルあたり1画素という圧縮伸長のスループットでは内部バッファと外部メモリとの間のデータ転送速度の要求が満たせない場合、複数の圧縮器および伸長器を設けて、圧縮伸長の処理を並列化する構成が採用されている(たとえば特許文献1参照)。この場合、用いている圧縮伸長アルゴリズムはブロックデータ単位のアルゴリズムであるため、転送を行いたいブロックデータ全体を複数のサブブロックデータに分割してそれぞれを並列に処理することになる。
しかしながら、たとえば一つのブロックデータを4つのサブブロックデータA〜Dに分割した場合、圧縮後のデータは圧縮した順にサブブロックデータA〜Dの順で配置され、この順で外部メモリに転送され、この順で外部メモリから読み出される。この結果、外部メモリから圧縮データを読み出し伸長する場合には、先頭に配置されるサブブロックデータAはそのまま伸長処理が開始されるが、その次に配置されるサブブロックデータBは、先頭のサブブロックデータAの読み出しが終了した後に外部メモリから読み出されるため、この読み出しが終了しないと伸長処理が開始されない。同様に、サブブロックデータCはサブブロックデータA,Bの読み出しが終了しないと伸長処理が開始されず、さらに、サブブロックデータDはサブブロックデータA〜Cの読み出しが終了しないと伸長処理が開始されない。
したがって、伸長器がサブブロックデータ数と同数設けられていた場合であっても、少なくともサブブロックデータCの転送が完了するまでは、いずれかの伸長器が処理を開始できずに待機するという状況が生じ、並列度が高く保てないことから、ブロックデータ全体の伸長処理に多くのサイクル数を必要とするという問題があった。
特開2008−252163号公報
本発明は、ブロックデータ全体の伸長処理に要するサイクル数を低減することができる圧縮伸長装置を提供することを目的とする。
本願発明の一態様によれば、外部メモリとのデータ通信のためにブロックデータを分割した複数のサブブロックデータを圧縮または伸長する圧縮伸長装置において、複数の圧縮器を有し、該複数の圧縮器を用いて前記複数のサブブロックデータを並行して圧縮する圧縮手段と、1サイクルあたりの転送データ量を分割し、前記圧縮手段によって圧縮された複数のサブブロックデータのうち二以上のサブブロックデータの所定量の圧縮データを各分割領域に割り振った後に各分割領域の圧縮データを組み合わせて転送データを生成し前記外部メモリに出力する組み合わせ手段と、複数の伸長器を有し、該複数の伸長器を用いて、前記外部メモリから読み出された前記転送データの各分割領域に割り振られた圧縮データを並行して伸長する伸長手段と、前記伸長手段によって伸長された各データが前記ブロックデータにおける元の位置に配置されるようにアドレス変換を行なう配置手段と、を備えたことを特徴とする圧縮伸長装置が提供される。
本発明によれば、圧縮側において、1サイクルあたりの転送データ量を分割し、二以上のサブブロックデータの圧縮データを各分割領域に割り振った後に各分割領域のデータを組み合わせた転送データを外部メモリに出力しており、伸長側において読み出す転送データには最初から二以上のサブブロックデータの圧縮データが含まれることから、二以上のサブブロックデータの圧縮データに対して0サイクル目から伸長処理を並行して行なうことができため、ブロックデータ全体の伸長処理に要するサイクル数を低減することができる。
図1は、第1の実施の形態にかかる圧縮伸長装置の構成を示すブロック図である。 図2は、圧縮前の画像データを説明する図である。 図3は、圧縮前の画像データの分割方法を説明する図である。 図4は、図1に示すデータ組み合わせ回路が生成する転送データを説明する図である。 図5は、圧縮後の画像データを説明する図である。 図6は、図4に示す先頭の転送データを説明する図である。 図7は、図4に示す転送データを説明する図である。 図8は、第1の実施の形態における伸長処理に要するサイクルについて説明する図である。 図9は、従来技術にかかる圧縮伸長装置の構成を示すブロック図である。 図10は、図9に示すデータ組み合わせ回路が生成する転送データを説明する図である。 図11は、図1に示す圧縮伸長装置の圧縮側の要部を示すブロック図である。 図12は、図1に示すデータ組み合わせ回路の構成を示す模式図である。 図13は、図1に示す圧縮伸長装置の伸長側の要部を示すブロック図である。 図14は、図1に示すデータ配置回路の構成を示す模式図である。 図15は、圧縮前の画像データの分割方法の他例を説明する図である。 図16は、第2の実施の形態にかかるプロセッサシステムの構成を示すブロック図である。 図17は、図16に示すデータ組み合わせ回路が生成する転送データを説明する図である。 図18は、図17に示す転送データを説明する図である。 図19は、圧縮後の画像データを説明する図である。 図20は、第2の実施の形態における伸長処理に要するサイクルについて説明する図である。 図21は、第3の実施の形態にかかる圧縮伸長装置の構成を示すブロック図である。 図22は、図21に示すデータ配置選択回路の構成を示す模式図である。 図23は、図22に示す選択信号を説明する表を示す図である。 図24は、図21に示すデータ組み合わせ回路の構成を示す模式図である。 図25は、図21に示すデータ振り分け回路の構成を示す模式図である。 図26は、図25に示す選択信号を説明する表を示す図である。
以下に添付図面を参照して、本発明の実施の形態にかかる圧縮伸長装置を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付している。
(第1の実施の形態)
図1は、本発明の第1の実施の形態にかかる圧縮伸長装置の構成を示すブロック図である。図1に示すように、本第1の実施の形態にかかる圧縮伸長装置1は、転送対象のデータを圧縮する圧縮器構として、圧縮前バッファ10、圧縮部20、圧縮後バッファ30およびデータ組み合わせ回路40を備え、入力されたデータを圧縮後、バス50を介して、この圧縮した圧縮データを外部メモリ51に転送する。そして、圧縮伸長装置1は、伸長前バッファ60、伸長部70、データ配置回路80および伸長後バッファ90を備え、バス50を介して読み出した外部メモリ51の圧縮データを伸長し出力する。なお、本第1の実施の形態においては、画像処理のマクロブロックとして16画素×16画素のブロック単位で処理を行う場合であって、非圧縮で8ビットの大きさである1画素ずつ、逐次的に圧縮伸長を行なう圧縮伸長アルゴリズムを用いて、ブロック形状の画像データを圧縮伸長する場合を例に説明する。
圧縮前バッファ10は、圧縮対象の画素データを一時的に記憶し、データの入力タイミングと圧縮部20の圧縮タイミングとを調整する。圧縮前バッファには、図2に示す16画素×16画素サイズのブロックデータGが、図3に示すように16画素×4画素サイズの4つのサブブロックデータA〜Dに分割された状態で順次格納される。なお、サブブロックデータAは画素0が先頭となり、サブブロックデータBは画素64が先頭となり、サブブロックデータCは画素128が先頭となり、サブブロックデータDは画素192が先頭となる。
圧縮部20は、複数の圧縮器21a〜21dを備え、この圧縮器21a〜21dを用いて、複数のサブブロックデータの各画素データを並行して圧縮することができる。圧縮部20は、サブブロックデータA〜Dの個数と同数の圧縮器21a〜21dを有する。この4個の圧縮器21a〜21dは、処理対象のサブブロックデータを圧縮前バッファ10からそれぞれ読み出して、4個のサブブロックデータを並行して圧縮する。
圧縮後バッファ30は、各圧縮器21a〜21dによって圧縮された圧縮データを一時的に記憶し、各圧縮器21a〜21dによる圧縮データの入力タイミングとデータ組み合わせ回路の処理タイミングとを調製する。
データ組み合わせ回路40は、1サイクルあたりの転送データ量を分割し、圧縮部器21a〜21dによって圧縮された複数のサブブロックデータのうち二以上のサブブロックデータの所定量の圧縮データをそれぞれ各分割領域に割り振った後に各分割領域の圧縮データを組み合わせて転送データを生成し外部メモリ51に出力する。このデータ組み合わせ回路40は、1サイクルあたりの転送データ量をサブブロックデータの個数および伸長器の個数と同数に均等分割し、圧縮器21a〜21dによって圧縮された各サブブロックデータの圧縮データを同量ずつ各分割領域にそれぞれ割り振っている。
伸長前バッファ60は、バス50を介して外部メモリ51から読み出されたデータを一時的に記憶し、バス50の転送タイミングと、伸長部70における伸長タイミングとを調製する。
伸長器70は、複数の伸長器71a〜71dを備え、この伸長器71a〜71dを用いて、複数の転送データを並行して伸長することができる。伸長部70は、サブブロックデータA〜Dの個数と同数の伸長器71a〜71dを有する。この4個の伸長器71a〜71dは、処理対象の転送データを伸長前バッファ60からそれぞれ読み出して、4個の転送データを並列に伸長する。この転送データは、圧縮されたサブブロックデータを含むものであるため、伸長器71a〜71dは、伸長後のデータとして各サブブロックデータA〜Dを構成する画素データを出力する。
データ配置回路80は、伸長器71a〜71dによって伸長された各データがブロックデータにおける元の位置に配置されるようにアドレス変換を行なう。データ配置回路80は、伸長器71a〜71dによって伸長された各サブブロックデータA〜Dを構成する画素データが、圧縮前のブロックデータGにおける元の位置に配置されるようにアドレスの変換を行い、伸長後バッファ90に書き込む。
伸長後バッファ90は、伸長後の画素データを一時的に記憶する。伸長後バッファ90に記憶される画素データは、データ配置回路80のアドレス変換処理によって、圧縮前の画素配置となる。なお、圧縮伸長装置1における圧縮伸長のアルゴリズムは、サブブロックデータ単位で圧縮後のビット数を保証することができて画像の画質が変動するアルゴリズムを使用し、伸長処理は1個の伸長器で1サイクルに1画素のスループットとする。
つぎに、圧縮したサブブロックデータを処理し転送データを生成するデータ組み合わせ回路40の転送データ生成処理について説明する。まず、圧縮前データのデータ配置について説明する。図3に示すように、処理対象の画像データGは、4つのサブブロックデータA〜Dに分割された後、画素0のデータが先頭になるサブブロックデータAを先頭に、画素64のデータ先頭になるサブブロックデータB、画素128のデータが先頭になるサブブロックデータC、画素192のデータが先頭になるサブブロックデータDの順で配置される。そして、各サブブロックデータA〜Dは、対応する圧縮器21a〜21dによってそれぞれ読み出され、並行して圧縮された後に圧縮後バッファ30に格納され、データ組み合わせ回路40によって圧縮後バッファ30からそれぞれ読み出される。
そして、データ組み合わせ回路40は、1サイクルあたりの転送データ量をサブブロックデータA〜Dの個数と同数の4つに均等分割し、各分割領域に、圧縮器21a〜21dによって圧縮された各サブブロックデータA〜Dの圧縮データを同量ずつ割り振るようにデータ配置を行なう。すなわち、データ組み合わせ回路40は、図4に示すように、各サブブロックデータA〜Dの圧縮データFa〜Fdを同量ずつ含ませるように各転送データを生成している。このため、最初の転送データF1にも、全てのサブブロックデータA〜Dの圧縮データが同量ずつ含まれる。
たとえば、1画素が8ビットで形成されるデータを1/2に圧縮するとした場合、各サブブロックデータの圧縮前データ量は16(画素)×4(画素)×8(ビット)、すなわち512ビットであることから、各サブブロックデータの圧縮後データ量は256ビット以内となる。また、バス50上のデータ転送として、1サイクルあたり64ビットのデータを転送するバースト転送を用いた場合、1個のサブブロックデータの転送を行なうには4バースト分必要となる。
ここで、圧縮後のデータ形式は、図5のデータGaに示すように、1個のサブブロックデータにつき1つのヘッダ、および、画素ごとの圧縮データによって構成される。圧縮の係数を保持するヘッダは7ビット固定長であり、1画素あたりの圧縮データは1ビットから15ビットの可変長である。なお、1画素だけで見た場合、圧縮前よりも圧縮後の方がサイズが大きくなることがあるが、サブブロックデータ全体で見ると圧縮後のビット数は圧縮率を保証するように圧縮される。
そして、バス50上のデータ転送として1サイクルあたり64ビットのデータを転送するバースト転送を用いた場合、データ組み合わせ回路40は、この1サイクルあたりの転送データ量である64ビットをサブブロックデータA〜Dの個数と同数の4個の分割領域に分割して、各分割領域を16ビットとする。たとえば、図6に示すように、64ビットの最初の転送データF1は、それぞれが16ビットである分割領域F1a〜F1dに分割される。
そして、データ組み合わせ回路40は、16ビットの各分割領域F1a〜F1dに、圧縮器21a〜21dによって圧縮された各サブブロックデータA〜Dの圧縮データを16ビットずつ割り振るようにデータ配置を行なう。
データ組み合わせ回路40は、サブブロックデータAの画素0の圧縮データが9ビットであって7ビットのヘッダと合わせると16ビットである場合、図7に示すように、最初の転送データF1のうちサブブロックデータAに対応する分割領域F1aに、サブブロックデータAのヘッダと画素0の圧縮データとを割り振る。そして、データ組み合わせ回路40は、サブブロックデータBの画素64のデータが9ビットである場合、最初の転送データF1のうちサブブロックデータBに対応する分割領域F1bにサブブロックデータBのヘッダと画素64の圧縮データとを割り振る。同様に、データ組み合わせ回路40は、最初の転送データF1のうちサブブロックデータCに対応する領域F1cに、サブブロックデータCのヘッダと9ビット分の圧縮データとを割り振り、さらに、最初の転送データF1のうちサブブロックデータDに対応する領域F1dに、サブブロックデータDのヘッダと、9ビット分の圧縮データとを割り振る。そして、2番目の転送データF2については、データ組み合わせ回路40は、16ビット分のサブブロックデータAに対応する分割領域F2aに、最初の転送データF1で割り振った画素データの次の画素データである画素1の圧縮データと、画素2の圧縮データとを割り振る。
さらに、データ組み合わせ回路40は、転送データに割り振る複数の画素の圧縮データの合計が16ビットよりも多い場合には17ビット以降の画素データを、この転送データの次の転送データに割り振る。データ組み合わせ回路40は、たとえばサブブロックデータAの画素1の圧縮データと画素2の圧縮データとの合計が16ビットを超える場合には、データ組み合わせ回路40は、17ビット以降の画素2のデータ2を、図7に示すように、3番目の転送データF3に割り振る。
このように、データ組み合わせ回路40は、1サイクルあたりの転送データ量である64ビットを4つに均等に分割し、16ビットの各分割領域にそれぞれ対応するサブブロックデータA〜Dの圧縮データを16ビットずつ画素順に順次割り振っている。したがって、図4に示すように、全ての転送データに各サブブロックデータA〜Dの圧縮後のデータFa〜Fdが16ビットずつ含まれることとなる。
そして、圧縮伸長装置1が外部メモリ51から読み出す64ビットの転送データも、各サブブロックデータA〜Dの圧縮後のデータが16ビットずつ含まれることとなる。この64ビットの転送データは、各伸長器71a〜71dによって、それぞれ16ビットずつ取り出される。次いで、伸長器71a〜71dは、各16ビットの圧縮データを並行して伸長する。バースト転送を用いた場合、図8に示すように、圧縮伸長装置1は、4つのサブブロックデータA〜Dに対応する圧縮データ全てを外部メモリ51から読み出すためには矢印Y1のように16サイクル必要となる。
ここで、全ての各転送データには、サブブロックデータA〜Dの圧縮データが16ビットずつ含まれる。このため、最初の転送データにも、各サブブロックデータA〜Dの圧縮データが16ビットずつ含まれている。したがって、各サブブロックデータA〜Dにそれぞれ対応する4個の伸長器71a〜71dは、伸長対象のサブブロックデータA〜Dの圧縮データを最初の転送データからそれぞれ16ビットずつ取得可能である。このため、各伸長器21a〜21dは、図8の矢印Y3a〜Y3dに示すように、最初の転送データが圧縮伸長装置1に到着した0サイクル目から、最初の転送データに含まれるサブブロックデータA〜Dにそれぞれ対応する各圧縮データに対して、待機することなく伸長処理を開始することができる。なお、図8の矢印Y3aはサブブロックデータAの伸長処理を行なう伸長器21aの伸長処理サイクルを示し、矢印Y3bはサブブロックデータBの伸長処理を行なう伸長器21bの伸長処理サイクルを示し、矢印Y3cはサブブロックデータCの伸長処理を行なう伸長器21cの伸長処理サイクルを示し、矢印Y3dはサブブロックデータDの伸長処理を行なう伸長器21dの伸長処理サイクルを示す。
したがって、伸長器71a〜71dは、0サイクル目から16ビットの各圧縮データを伸長することができることから、伸長器71a〜71dのいずれにおいても、8画素×8ビットのサブブロックデータに対応する64サイクルで伸長処理を終えることができる。なお、伸長処理を開始した後は、バス51の転送レートの16ビット/サイクルが、伸長処理のビット消費スループットである1画素(最大15ビット)/サイクルよりも早いため、伸長処理の1画素/サイクルのスループットは確保される。
ここで、従来の圧縮伸長装置について説明する。図9は、従来の圧縮伸長装置の概略を示すブロック図である。図9に示すように、従来の圧縮伸長装置101は、圧縮前バッファ110、圧縮後バッファ130、伸長前バッファ160および伸長後バッファ190に加え、各サブブロックデータに対応させて複数の圧縮器121a〜121dを有する圧縮部120と、複数の伸長器171a〜171dを有する伸長部170を備え、各サブブロックデータを並行して圧縮および伸長する。
しかしながら、従来の圧縮伸長装置101は、図10(1)のようにサブブロックデータA〜Dの順で配置された圧縮前のデータを、図10(2)に示すように、この配置順のまま圧縮していた。そして、従来では、サブブロックデータA〜Dの順でそのまま圧縮データが転送されていたため、最初の転送データFb1には先頭のサブブロックデータAの圧縮データしか含まれていなかった。そして、従来の圧縮伸長装置101では、サブブロックデータAの外部メモリ151への転送が終了しないとサブブロックデータBの転送が行なわれなかった。そして、従来の圧縮伸長装置101では、バス150を介して外部メモリ151から読み出される伸長対象の転送データもサブブロックA〜Dの順で順次読み出されていた。
すなわち、図8の矢印Y1aのようにサブブロックデータAが外部メモリ151から全て読み出された4サイクル目でないと、矢印Y1bに示すようにサブブロックデータBのデータの読み出しは行なわれなかった。同様に、サブブロックデータBが外部メモリ151から全て読み出された8サイクル目でないと、矢印1cに示すようにサブブロックデータCのデータの読み出しは行なわれず、サブブロックデータCが外部メモリ151から全て読み出された12サイクル目でないと、矢印Y1dに示すようにサブブロックデータDのデータの読み出しは行なわれなかった。したがって、従来では、サブブロックデータAに対応する伸長器171aは、最初に読み出した転送データにサブブロックデータAの圧縮データが含まれるため、図8の矢印Y2aに示すように、0サイクル目からサブブロックデータAの伸長処理を行なうことができる。すなわち、伸長器171aは0サイクル目からサブブロックデータAの伸長処理を開始して64サイクル目に終了することができる。これに対し、サブブロックデータB〜Dに対応する伸長器171b〜171dは、最初に読み出される転送データにサブブロックデータB〜Dの圧縮データが含まれていないため、伸長対象の圧縮データを0サイクル目で取得することができず、0サイクル目から伸長処理を行なうことができなかった。具体的には、伸長器171bは矢印Y2bに示すように4サイクルまでは待機して、サブブロックデータBの圧縮データを含む転送データを読み出せる4サイクル目からサブブロックデータBの伸長処理を開始するため、68サイクル目で全てのサブブロックデータBの圧縮データの伸長処理を終了する。そして、伸長器171cは矢印Y2cに示すように、8サイクルまでは待機して、サブブロックデータCの圧縮データを含む転送データを読み出せる8サイクル目からサブブロックデータCの伸長処理を開始し72サイクル目でサブブロックデータCの伸長処理を終了する。また、伸長器171dは矢印Y2dに示すように12サイクルまでは待機して、サブブロックデータDの圧縮データを含む転送データを読み出せる12サイクル目からサブブロックデータDの伸長処理を開始して、76サイクル目でサブブロックデータDの伸長処理を終了する。
このため、従来では、サブブロックデータA〜Dで構成されるブロックデータGを伸長するまでに、伸長処理そのものに必要になる8ビット×8画素分の64ビットのサイクルに加えて、各伸長器171b〜171dによる最大12サイクル分の待機によって、76サイクルもの処理時間が必要となる。このように、従来では、伸長器がサブブロックデータ数と同数設けられていた場合であっても、少なくともサブブロックデータCの転送が完了するまでは、いずれかの伸長器が処理を開始できずに待機するという状況が生じ、並列度が高く保てないことから、ブロックデータ全体の伸長処理に多くのサイクル数を必要とするという問題があった。
これに対し、本第1の実施の形態にかかる圧縮伸長装置1においては、データ組み合わせ回路40が、最初の伸長タイミングから全伸長器71a〜71dに伸長対象のサブブロックデータA〜Dの圧縮データが入力されるように、1サイクルあたりの転送データ量をサブブロックデータA〜Dの個数と同数に均等分割し、圧縮器21a〜21dによってそれぞれ圧縮された各サブブロックデータA〜Dを同量ずつ各分割領域にそれぞれ割り振った後に各分割領域のデータを組み合わせて転送データを生成し外部メモリ51に出力する。この結果、圧縮伸長装置1が外部メモリ51から読み出す64ビットの転送データには各サブブロックデータA〜Dの圧縮後のデータが16ビットずつ含まれることとなる。このため、各伸長器21a〜21dは、最初の転送データが圧縮伸長装置1に到着した0サイクル目から待機することなく伸長処理を並行して開始することができ、いずれの伸長器71a〜71dにおいても、8画素×8ビット分の64サイクルで伸長処理を終えることができる。したがって、圧縮伸長装置1においては、図8に示すように、従来よりも、伸長処理を12サイクル分早く終了することが可能になる。
このように、本第1の実施の形態では、1サイクルあたりの転送データ量を分割し、圧縮された複数のサブブロックデータをそれぞれ各分割領域に割り振った後に各分割領域のデータを組み合わせて転送データを生成して、最初の伸長タイミングから全伸長器に伸長対象の圧縮データが入力されるようにしているため、圧縮伸長処理の並列度を高く保持してブロックデータ全体の伸長処理に要するサイクル数を低減することができる。
なお、図1に示す圧縮伸長装置1の圧縮側の要部について詳細に説明する。図11は、圧縮伸長装置1の圧縮側の要部を示すブロック図である。図11に示すように、圧縮後バッファ30は、圧縮器21a〜21dにそれぞれ対応する複数の圧縮後バッファ31a〜31dを備え、対応する圧縮器21a〜21dが圧縮したデータを一時的に記憶する。
まず、圧縮前バッファ10には圧縮対象の画素データのサブブロックデータ全体が格納される。そして、4つの圧縮器21a〜21dは、対応するサブブロックデータA〜Dのデータをそれぞれ圧縮前バッファ10から読み出して4つのサブブロックデータA〜Dを並列に圧縮する。たとえば最初の圧縮処理においては、圧縮器21aは画素0のデータを読み出し、圧縮器21bは画素64のデータを読み出し、圧縮器21cは画素128のデータを読み出し、圧縮器21dは画素192のデータを読み出す。
次いで、それぞれの圧縮器21a〜21dで圧縮された各データは、それぞれ圧縮器21a〜21dに対応する圧縮後バッファ31a〜31dに格納される。圧縮スループットは、1サイクルあたり1画素であるため、圧縮前バッファ10からは圧縮器21a〜21dごとに、1サイクルあたり8ビットの転送スループットがあればよい。そして、圧縮後の画素は最大15ビットであるため、圧縮器21a〜21dから各圧縮後バッファ31a〜31dへは、1サイクルあたり15ビットを転送する必要がある。
つぎに、圧縮後バッファ31a〜31dから読み出したサブブロックデータA〜Dの各圧縮データを、データ組み合わせ回路40が、上述したように各分割領域にそれぞれ16ビットずつ割り振った転送データに生成し、バスへ書き出しを行う。バスのバースト転送は、1サイクルあたり64ビットであるため、4個の圧縮後バッファ31a〜31dからは、64ビットを4で割った16ビット/サイクルの転送スループットが必要となる。ここで、圧縮器21a〜21dから圧縮後バッファ31a〜31dへのデータの供給は、最小で1サイクルあたり1ビットであるため、圧縮後バッファ31a〜31dに、十分な量もしくはサブブロックデータ全体分の圧縮データを貯めてからバス50への転送を開始する。なお、図12に示すように、データ組み合わせ回路40は、各圧縮後バッファ31a〜31dから出力された16ビットのデータを64ビットの転送データFkに合成してから、バス50へ出力する。
次いで、圧縮伸長装置1の伸長側の機構について詳細に説明する。図13は、圧縮伸長装置1の伸長側の要部を示すブロック図である。図13に示すように、伸長前バッファ60は、伸長器71a〜71dにそれぞれ対応する複数の伸長前バッファ61a〜61dを備え、バス50を介して外部メモリ51から読み出されたデータであって、対応する伸長器71a〜71dの伸長対象となるデータを一時的に記憶する。
バス50から転送されてきた64ビットの転送データのうち、0〜15ビットが伸長前バッファ61aに格納され、16〜31ビットが伸長前バッファ61bに格納され、32〜47ビットが伸長前バッファ61cに、48〜63ビットが伸長前バッファ61dに格納される。各伸長器71a〜71dは、対応する伸長前バッファ61a〜61dから16ビットの圧縮データを取り出して伸長した後に、各伸長前バッファ61a〜61dから次に伸長対象となる16ビットの圧縮データを取り出すという繰り返しで伸長処理を行う。そして、データ配置回路80は、伸長器71a〜71dによって伸長された各画素データに対して、それぞれの画素データが圧縮前のブロックデータGにおける元の位置に配置されるようにアドレスの変換を行い、伸長後バッファ90に書き込む。したがって、伸長後バッファ90内に保持される画素データは圧縮前の画素配置となる。
また、データ配置回路80は、図14に示すように、各サブブロックデータA〜Dにそれぞれ対応するカウンタ81a〜81dおよび加算器82a〜82dを有する。たとえば、伸長器71aから出力される伸長後のデータを例に、データ配置回路80のアドレス変換処理を説明する。
まず、伸長器71aの出力イネーブル信号が入力されるとともに、伸長器71aによって伸長された画素データであってサブブロックデータAを構成するライトデータAが伸長器71aから入力される。出力イネーブル信号は、ライトデータAに対応するライトイネーブル信号S2となるとともに、信号S3としてカウンタ81aに入力してカウンタ81aをインクリメントし、インクリメントしたカウンタ値を信号S4として加算器82aに入力させる。次いで、加算器82aでは、伸長後バッファ90内で、対象となるブロックデータをどの位置に保持するかを示すオフセット値であるブロックオフセットS1が入力されると、カウンタ81aからの信号S4と、ライトデータAに対応するオフセット信号S5とを加算する。そして、加算器82aは、ライトイネーブル信号S2およびライトデータAに対応する信号S7と同期させて、ライトデータAのアドレス信号S6を伸長後バッファ90に出力する。たとえば、データ配置回路80は、最初に入力された伸長後のデータに対しては、伸長器71aから入力されたデータに画素0のアドレスを付与し、伸長器71bから入力されたデータに画素64のアドレスを付与し、伸長器71cから入力されたデータに画素128のアドレスを付与し、伸長器71dから入力されたデータに画素192のアドレスを付与する。
このように、データ配置回路80は、ライトイネーブル信号および実際に伸長された画素データに、この画素データのブロックデータGにおける元の位置を示すアドレスを付与して、伸長後バッファ90に出力しているため、伸長器71a〜71bによって伸長された各サブブロックデータを元のブロックデータとなるように配置することが可能になる。
また、本第1の実施の形態においては、圧縮器として4個の圧縮器21a〜21dを設けた圧縮伸長装置1を例に説明したが、圧縮器の個数は必ずしもサブブロックデータA〜Dの個数と同数の4個でなくてもよく、1〜3個であってもよい。この場合には、圧縮後のデータの蓄積速度が遅くなるだけであるので、圧縮伸長装置の動作処理に特に影響はない。
また、本第1の実施の形態では、図2に示すように、16画素×4画素のサブブロックデータA〜Dに分割した場合を例に説明したが、もちろんこれに限らず、たとえば図15(1)に示すように、8画素×8画素のサブブロックデータA´〜D´に分割した場合にも適用可能である。この場合にも同様に、図15(2)に示すように、データ組み合わせ回路40が、16ビットの各分割領域に、圧縮器21a〜21dによって圧縮された各サブブロックデータA´〜D´を16ビットずつ割り振るようにデータ配置を行なって、最初の転送データFc1に全てのサブブロックデータA´〜D´のデータを含ませている。なお、この場合には、圧縮器21a〜21dへの圧縮前バッファ10からのデータ供給時の圧縮前バッファの読み出しアドレスおよびデータ配置回路80の処理内容が、サブブロックデータA´〜D´に対応するように変化する。具体的には、最初の圧縮処理において、圧縮器21aは画素0のデータを読み出し、圧縮器21bは画素8のデータを読み出し、圧縮器21cは画素128のデータを読み出し、圧縮器21dは画素136のデータを読み出す。そして、データ配置回路80は、最初に入力された伸長後のデータに対し、伸長器71aから入力されたデータに画素0のアドレスを付与し、伸長器71bから入力されたデータに画素8のアドレスを付与し、伸長器71cから入力されたデータに画素128のアドレスを付与し、伸長器71dから入力されたデータに画素136のアドレスを付与する。
(第2の実施の形態)
つぎに、第2の実施の形態について説明する。本第2の実施の形態は、圧縮後の先頭のサブブロックデータにおけるヘッダと先頭の画素データとを合わせたデータ量をもとに、1サイクルあたりの転送データ量の分割数を設定し、最初の転送データに圧縮された先頭の画素データの全てが含まれるようにして、0サイクル目から伸長処理を開始できるようにしている。
図16は、本発明の第2の実施の形態にかかる圧縮伸長装置の構成を示すブロック図である。図16に示すように、本第2の実施の形態にかかる圧縮伸長装置201は、図1に示すデータ組み合わせ回路40に代えてデータ組み合わせ回路240を備え、図1に示すデータ配置回路80に代えてデータ配置回路280を備える。
圧縮伸長装置201においては、1サイクルあたりの転送データ量の分割数は、圧縮後の先頭のサブブロックデータにおけるヘッダと先頭データとを合わせたデータ量に応じて設定される。データ組み合わせ回路240は、設定された1サイクルあたりの転送データ量の分割数がサブブロックデータの個数よりも少ない場合には、前の転送データに割り振られなかったサブブロックデータを次の転送データに割り振り、この割り振り順序で各サブブロックデータの割り振りを繰り返す。データ配置回路280は、データ組み合わせ回路240の圧縮データの割り振り処理に対応させて、伸長器71a〜71dによって伸長された各サブブロックデータを校正する画素データが、圧縮前のブロックデータGにおける元の位置に配置されるようにアドレス変換を行なう。
具体的には、図17(1)に示すように、16画素×4画素のサイズで分割された4個のサブブロックデータA〜Dに対し、図17(2)に示すように、データ組み合わせ回路240は、1つの転送データに二つのサブブロックデータのデータを順番に割り振っている。この場合、データ組み合わせ回路240は、1サイクルあたりの転送データ量である64ビットを2個に分割して、各分割領域を32ビットずつとする。つまり、図18に示すように、一つの転送データで1つのサブブロックデータあたり32ビットが割り当てられている。
そして、図17(2)および図18に示すように、データ組み合わせ回路240は、先頭の転送データFd1の分割領域Fd1aには、サブブロックデータA〜DのうちサブブロックデータAのヘッダ、画素0の圧縮データ、画素1の圧縮データを割り振り、転送データFd1の分割領域Fd1bには、サブブロックデータA〜DのうちサブブロックデータBのヘッダ、画素64の圧縮データ、画素65の圧縮データおよび画素66の圧縮データを割り振る。次いで、データ組み合わせ回路240は、次の2番目の転送データFd2の2個の分割領域Fd2c,Fd2dには、先頭の転送データFd1に割り振られなかったサブブロックデータC,Dのヘッダおよび画素データを割り振り、次の3番目の転送データFd3の2個の分割領域Fd3a,Fd3bには先頭の転送データFd1と同様にサブブロックデータA,Bのデータを割り振り、次の4番目の転送データFd4の2個の分割領域Fd4c,Fd4dには、2番目の転送データFd2と同様にサブブロックデータC,Dのデータを割り振る。データ組み合わせ回路240は、この割り振り順序で各サブブロックデータの各圧縮データの各分割領域への割り振りを繰り返している。したがって、1個のサブブロックデータの圧縮データは、1つおきの転送データに含まれることとなる。
ここで、第1の実施の形態においては、一つの転送データで、1個のサブブロックデータあたり16ビットが割り当てられていた。この場合には、1個のサブブロックデータへの割り振りが16ビットであるため、図19の圧縮後のデータGaに示すように、ヘッダと先頭の画素0の圧縮データとの合計が17ビット以上である場合には、先頭の転送データに最初の画素0のデータを全て割り振ることができない。この結果、伸長処理のために最初の転送データを外部メモリ51から読み出した場合であっても、0サイクル目から伸長処理を開始できず、次の転送データを読み出す1サイクル目まで伸長処理を待機しなければならない。
これに対し、本第2の実施の形態では、図18に示すように、外部メモリ51から最初に読み出される転送データの中にサブブロックデータAの最初の画素の圧縮データが必ず含まれるように、1サイクルあたりの転送データ量の分割数を、圧縮後の先頭のサブブロックデータにおけるヘッダと先頭データとを合わせたデータ量に応じて2個に設定し、1つのサブブロックデータあたり32ビットを割り当てている。このため、本第2の実施の形態では、ヘッダと先頭の圧縮データとの合計が17ビット以上である場合であっても、最初の転送データに先頭の画素0の圧縮データを全て割り振ることができる。したがって、図20の矢印Y21のサイクル期間において外部メモリ51から最初に読み出される転送データの中には、サブブロックデータAの最初の画素の圧縮データとサブブロックデータBの最初の画素の圧縮データが必ず含まれている。このため、伸長器71a,71bは、サブブロックデータAとサブブロックデータBに対して、矢印Y23a,Y23bのように、0サイクル目から伸長処理を開始できる。そして、図20の矢印Y22に示すように、2番目に転送されて1サイクル目に到着する転送データにはサブブロックデータCの最初の画素の圧縮データとサブブロックデータDの最初の画素の圧縮データが必ず含まれているため、伸長器71c,71dは、サブブロックデータCとサブブロックデータDに対して、矢印Y23a,Y23bのように、この転送データが到着した1サイクル目から伸長処理を開始できる。
さらに、最初の転送データ割り当ての32ビット中に次に伸長対象となる画素1の圧縮データが全て含まれている場合には、伸長器71a,71bは、画素0に対する伸長処理が終わった後、待機せずとも、そのまま画素1の伸長処理を行なうことができるため、図20の矢印Y23a,Y23bに示すように、サブブロックデータA,Bに対し64サイクル目で伸長処理を完了できる。そして、伸長器71c,71dは、図20の矢印23c,Y23dに示すように、サブブロックデータC,Dについて65サイクル目で伸長処理を完了できる。
このように、本第2の実施の形態においては、ヘッダと先頭の画素の圧縮データとをあわせたデータ量が17ビット以上である場合であっても、最初の転送データに先頭の画素0の圧縮データを全て割り振ることができるため、最初の伸長対象の圧縮データを0サイクル目から伸長可能であることから、圧縮対象の圧縮データの読み出しのために待機することがない。また、本第2の実施の形態では、図20の矢印Y23a〜Y23dに示すように全てのサブブロックデータA〜Dの伸長処理を65サイクルで終了することができることから、図20の矢印Y2a〜Y2bに示す76サイクルで全てのサブブロックデータA〜Dの伸長処理が終了する従来よりも伸長処理を11サイクル分早く終了することができる。したがって、本第2の実施の形態においても、第1の実施の形態と同様に、圧縮伸長処理の並列度を高く保持してブロックデータ全体の伸長処理に要するサイクル数を低減することができる。
(第3の実施の形態)
つぎに、第3の実施の形態について説明する。本第3の実施の形態では、圧縮後の先頭のサブブロックデータにおけるヘッダと先頭画素データとを合わせたデータ量をもとに、1サイクルあたりの転送データ量の分割数をサブブロックデータの個数と同数またはサブブロックデータの個数よりも少ない数に選択して、最も少ないサイクルで伸長処理が終了するようにしている。
図21は、本発明の第3の実施の形態にかかる圧縮伸長装置の構成を示すブロック図である。図21に示すように、本第3の実施の形態にかかる圧縮伸長装置301は、図1に示すデータ組み合わせ回路40に代えてデータ組み合わせ回路340を備え、図1に示すデータ配置回路80に代えてデータ配置回路380を備える。そして、圧縮伸長装置301は、図1に示す圧縮伸長装置1と比較し、データ配置選択回路350およびデータ振り分け回路360をさらに備えた構成を有する。
データ配置選択回路350は、圧縮後の先頭のサブブロックデータにおけるヘッダと先頭データとを合わせたデータ量をもとに、1サイクルあたりの転送データ量の分割数をサブブロックデータの個数と同数またはサブブロックデータの個数よりも少ない数に選択する。データ配置選択回路350は、圧縮後バッファ30から、各サブブロックデータの先頭画素の圧縮画素データ長を示す情報を送信されることによって、この情報をもとに1サイクルあたりの転送データ量の分割数を選択する。
具体的には、データ配置選択回路350は、圧縮後の先頭のサブブロックデータAにおけるヘッダと先頭の画素0の圧縮データとを合わせたデータ量が16ビット以下である場合には、64ビットの1サイクルあたりの転送データ量の分割数を、サブブロックデータA〜Dの個数の同数の4個に選択する。この場合には、圧縮後の先頭のサブブロックデータAにおけるヘッダと先頭の画素0の圧縮データとを合わせたデータ量が16ビット以下であるため、1サイクルあたりの転送データ量である64ビットを4個に分割しても、最初の転送データの中に、サブブロックデータAのヘッダと画素0の圧縮データとを全て含ませることができるためである。これに対し、データ配置選択回路350は、圧縮後の先頭のサブブロックデータAにおけるヘッダと先頭の画素0の圧縮データとを合わせたデータ量が16ビットよりも多い場合には、64ビットの1サイクルあたりの転送データ量の分割数を、サブブロックデータA〜Dの個数よりも少ない2個に選択する。この場合、1サイクルあたりの転送データ量を4個に分割すると最初の転送データの中にサブブロックデータAのヘッダと画素0の圧縮データとを全て含ませることができないため、64ビットを2個に分割して一つの分割領域を32ビットとすることによって、最初の転送データの中にサブブロックデータAにおけるヘッダと画素0の圧縮データとを確実に全て含ませるようにしている。
このデータ配置選択回路350は、図22に示すように、比較回路351a,351b、クロックで反転するレジスタ352および組み合わせ回路353を有する。まず、データ配置選択回路350には、図22に示すように、圧縮後バッファ30によって、サブブロックデータAの先頭画素の圧縮データ長を示す情報LaとサブブロックデータBの先頭画素の圧縮データ長を示す情報Lbが入力される。そして、比較回路351aは、入力された情報Laをもとに、サブブロックデータAの先頭画素の圧縮データ長と、16ビットからヘッダ長(7ビット)を減じた値との大小を比較し、比較結果を出力する。同様に、比較回路351bは、入力された情報Lbをもとに、サブブロックデータBの先頭画素の圧縮データ長と、16ビットからヘッダ長を減じた値との大小を比較し、比較結果を出力する。
そして、組み合わせ回路353は、比較回路351a,351bから出力された比較結果をもとに、サブブロックデータAとサブブロックデータBのいずれにおいても、ヘッダと先頭の圧縮画素データとの合計が16ビット以下である場合には、1サイクルあたりの転送データ量64ビットの分割数を4個に選択する選択信号S10aを生成する。この選択信号S10aは、図23のテーブルT1に示すように、いずれのサイクルにおいても、バスへの出力データとして各サブブロックデータA〜Dの圧縮データを指示するものとなっている。これに対し、組み合わせ回路353は、サブブロックデータAとサブブロックデータBのいずれか一方でもヘッダと先頭の圧縮画素データとの合計が16ビットよりも大きい場合には、1サイクルあたりの転送データ量64ビットの分割数を2個に選択する選択信号S10bを生成する。組み合わせ回路353が、1サイクルあたりの転送データ量64ビットの分割数を2個に選択する場合には、1クロックごとにデータ配置が異なるため、1クロックごとに反転するレジスタ352の値と組み合わせてデータ配置の選択信号S10bを生成する。この選択信号S10bは、図23のテーブルT1に示すように、バスへの出力データとして、サイクルでサブブロックデータA,Bの圧縮データ、または、サブブロックデータC,Dの圧縮データのいずれかを指示するものとなっている。データ配置選択回路350は、生成した選択信号S10をデータ組み合わせ回路340に出力する。この選択信号S10は、圧縮後の転送データに対するデータ組み合わせ処理時に使用される。
データ組み合わせ回路340は、データ配置選択回路350によって選択された分割数にしたがって、1サイクルあたりの転送データ量を分割して、複数のサブブロックデータの圧縮データをそれぞれ各分割領域に割り振るとともに、1サイクルあたりの転送データ量の分割数を示す分割情報を付与した転送データを生成する。
図24に示すように、各圧縮後バッファ31a〜31dによって圧縮された各サブブロックデータA〜Dの圧縮データが16ビットずつ出力される。たとえば、圧縮後バッファ31aからは、ヘッダと先頭の画素0の圧縮データを含む最初の16ビットの圧縮データA0と、次の16ビットの圧縮データA1が出力される。データ組み合わせ回路340は、データ配置選択回路350から入力された選択信号S10が指示する分割数にしたがって、64ビットの1サイクルあたりの転送データ量を4個または2個に分割する。
データ組み合わせ回路340は、データ配置選択回路350から選択信号S10aが入力された場合には、図23のテーブルT1に示すように、64ビットの1サイクルあたりの転送データ量を4個に分割し、各分割領域に各サブブロックデータA〜Dの圧縮データを16ビットずつ割り振る。さらに、先頭ビット置換部342は、入力された選択信号S10aに対応させて、1サイクルあたりの転送データ量の分割数が4個であることを示す分割情報を生成する。データ組み合わせ回路340は、最初に転送する転送データFe1を生成する場合には、各サブブロックデータのヘッダおよび先頭画素の圧縮データが割り振られた各分割領域のデータを組み合わせるとともに、先頭のサブブロックデータAのヘッダの先頭ビットF0eに分割情報を組み込むことによって、先頭の転送データFe1を生成する。
そして、データ組み合わせ回路340は、データ配置選択回路350から選択信号S10bが入力された場合には、図23のテーブルT1に示すように、64ビットの1サイクルあたりの転送データ量を2個に分割し、この分割領域にサブブロックデータA,Bの圧縮データを32ビットずつ割り振った後に2個の分割領域のデータを組み合わせて最初の転送データを生成する。次に、データ組み合わせ回路340は、次の転送データとして、サブブロックデータC,Dの圧縮データを32ビットずつ割り振った転送データを生成する。この繰り返しで、一つおきに各サブブロックデータA〜Dの圧縮データが32ビットずつ含まれるように各転送データを生成する。さらに、先頭ビット置換部342は、入力された選択信号S10bに対応させて、1サイクルあたりの転送データ量の分割数が2個であることを示す分割情報を生成し、先頭のサブブロックデータAのヘッダの先頭ビットF0eに分割情報を組み込んで先頭の転送データFe1を生成する。
データ振り分け回路360は、1サイクルあたりの転送データ量の分割数に応じて、外部メモリ51から読み出された転送データを分割し各伸長器71a〜71dに振り分ける。データ振り分け回路360は、データ組合せ回路340によって転送データに付与された分割情報をもとに外部メモリ51から読み出された転送データを分割する。
データ振り分け回路360は、図25に示すように、外部メモリ51から最初に読み出した転送データFe1の先頭ビットF0eを分離して取得する分離回路362と、取得した先頭ビットに組み込まれた分割情報を参照して、読み出し対象の転送データにおける分割数を示す選択信号S20を生成する選択信号生成部363とを備え、選択信号生成部363によって生成された選択信号S20に応じて、転送データを分割各伸長前バッファ61a〜61bに振り分ける。
選択信号生成部363は、分割情報が1サイクルあたりの転送データ量の分割数が4個である旨を示す場合には、転送データ量64ビットの分割数を4個に選択する選択信号S20aを生成する。この選択信号S20aは、図26のテーブルT2に示すように、各転送データは、4個に分割されたものであり、各サイクルごとにバスからの出力データとして各サブブロックデータA〜Dの圧縮データが含まれていることを指示するものとなっている。データ振り分け回路360は、選択信号S20aにしたがって、64ビットの転送データ量を4個に分割し、各分割領域に含まれる各サブブロックデータA〜Dの圧縮データを16ビットずつ、伸長前バッファ61a〜61dに振り分ける。
また、選択信号生成部363は、分割情報が1サイクルあたりの転送データ量の分割数が2個である旨を示す場合には、転送データ量64ビットの分割数を2個に選択する選択信号S20bを生成する。この選択信号S20bは、図26のテーブルT2に示すように、各転送データは、2個に分割されたものであり、バス50からの出力データとして、一つおきに各サブブロックデータA〜Dの圧縮データが32ビットずつ含まれていることを指示するものとなっている。データ振り分け回路360は、選択信号S20bにしたがって、最初の転送データを2個に分割し各分割領域に含まれる各サブブロックデータA,Bの圧縮データを36ビットずつ伸長前バッファ61a,61bに振り分け、次の転送データを2個に分割し各分割領域に含まれる各サブブロックデータC,Dの圧縮データを36ビットずつ伸長前バッファ61c,61dに振り分け、この繰り返しで、交互に伸長前バッファ61a,61bまたは伸長前バッファ61c,61dへのデータの振り分けを行なう。また、データ配置回路380は、データ振り分け回路360による各伸長前バッファ61a〜61への圧縮データの振り分け処理内容に応じてアドレス変換処理を行なう。
このように、本第3の実施の形態では、最も少ないサイクルで伸長処理が終了するように、圧縮後の先頭のサブブロックデータにおけるヘッダと先頭画素データとを合わせたデータ量をもとに、1サイクルあたりの転送データ量の分割数をサブブロックデータの個数と同数またはサブブロックデータの個数よりも少ない数に選択することによって、ブロックデータ全体の伸長処理に要するサイクル数を低減している。
1,101,201,301 圧縮伸長装置、10,110 圧縮前バッファ、20,120 圧縮部、21a〜21d,121a〜121d 圧縮器、30,130 圧縮後バッファ、40,240,340 データ組み合わせ回路、50,150 バス、51,151 外部メモリ、60,160 伸長前バッファ、70,170 伸長部、71a〜71d,171a〜171d 伸長器、80,280,380 データ配置回路、81a〜81d カウンタ、82a〜82d 加算器、90,190 伸長後バッファ、350 データ配置選択回路、360 データ振り分け回路

Claims (5)

  1. 外部メモリとのデータ通信のためにブロックデータを分割した複数のサブブロックデータを圧縮または伸長する圧縮伸長装置において、
    複数の圧縮器を有し、該複数の圧縮器を用いて前記複数のサブブロックデータを並行して圧縮する圧縮手段と、
    1サイクルあたりの転送データ量を分割し、前記圧縮手段によって圧縮された複数のサブブロックデータのうち二以上のサブブロックデータの所定量の圧縮データを各分割領域に割り振った後に各分割領域の圧縮データを組み合わせて転送データを生成し前記外部メモリに出力する組み合わせ手段と、
    複数の伸長器を有し、該複数の伸長器を用いて、前記外部メモリから読み出された前記転送データの各分割領域に割り振られた圧縮データを並行して伸長する伸長手段と、
    前記伸長手段によって伸長された各データが前記ブロックデータにおける元の位置に配置されるようにアドレス変換を行なう配置手段と、
    を備えたことを特徴とする圧縮伸長装置。
  2. 前記伸長手段は、前記複数のサブブロックデータの個数と同数の伸長器を有し、
    前記組み合わせ手段は、前記1サイクルあたりの転送データ量を前記サブブロックデータの個数と同数に均等分割し、前記圧縮手段によって圧縮された各サブブロックデータの圧縮データを同量ずつ各分割領域にそれぞれ割り振ることを特徴とする請求項1に記載の圧縮伸長装置。
  3. 前記1サイクルあたりの転送データ量に対する分割数は、圧縮後の先頭の前記サブブロックデータにおけるヘッダと先頭データとを合わせたデータ量に応じて設定され、
    前記組み合わせ手段は、設定された前記1サイクルあたりの転送データ量に対する分割数が前記サブブロックデータの個数よりも少ない場合には、前の転送データに割り振られなかったサブブロックデータの圧縮データを次の転送データに割り振り、該割り振り順序で各サブブロックデータの圧縮データの割り振りを繰り返すことを特徴とする請求項1に記載の圧縮伸長装置。
  4. 圧縮後の先頭の前記サブブロックデータにおけるヘッダと先頭データとを合わせたデータ量をもとに、前記1サイクルあたりの転送データ量に対する分割数を前記サブブロックデータの個数と同数または前記サブブロックデータの個数よりも少ない数に選択する選択手段と、
    前記選択手段によって選択された分割数に応じて、前記外部メモリから読み出された転送データを分割し各伸長器に振り分ける振り分け手段と、
    を備え、
    前記組み合わせ手段は、前記選択手段によって選択された分割数にしたがって、前記1サイクルあたりの転送データ量を分割して前記圧縮された複数のサブブロックデータの圧縮データを各分割領域に割り振るとともに、前記選択された分割数を示す分割情報を付与した転送データを生成し、
    前記振り分け手段は、前記組み合わせ手段によって転送データに付与された分割情報をもとに前記外部メモリから読み出された転送データを分割することを特徴とする請求項1に記載の圧縮伸長装置。
  5. 前記選択手段は、前記圧縮後の先頭のサブブロックデータにおけるヘッダと先頭データとを合わせたデータ量が前記1サイクルあたりの転送データ量を前記サブブロックデータの個数と同数に均等分割した場合の各分割領域のデータ量以下である場合には、前記1サイクルあたりの転送データ量に対する分割数を前記サブブロックデータの個数と同数に選択し、前記圧縮後の先頭のサブブロックデータにおけるヘッダと先頭データとを合わせたデータ量が前記1サイクルあたりの転送データ量を前記サブブロックデータの個数と同数に均等分割した場合の各分割領域のデータ量よりも多い場合には、前記1サイクルあたりの転送データ量に対する分割数を前記サブブロックデータの個数よりも少ない数に選択することを特徴とする請求項4に記載の圧縮伸長装置。
JP2009172057A 2009-07-23 2009-07-23 圧縮伸長装置 Expired - Fee Related JP5017324B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009172057A JP5017324B2 (ja) 2009-07-23 2009-07-23 圧縮伸長装置
US12/721,008 US8102287B2 (en) 2009-07-23 2010-03-10 Compression/decompression apparatus and compression/decompression method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009172057A JP5017324B2 (ja) 2009-07-23 2009-07-23 圧縮伸長装置

Publications (2)

Publication Number Publication Date
JP2011029817A JP2011029817A (ja) 2011-02-10
JP5017324B2 true JP5017324B2 (ja) 2012-09-05

Family

ID=43496827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009172057A Expired - Fee Related JP5017324B2 (ja) 2009-07-23 2009-07-23 圧縮伸長装置

Country Status (2)

Country Link
US (1) US8102287B2 (ja)
JP (1) JP5017324B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140086309A1 (en) * 2011-06-16 2014-03-27 Freescale Semiconductor, Inc. Method and device for encoding and decoding an image
CN102740075B (zh) * 2012-06-05 2015-02-11 沙基昌 一种视频数据的压缩/解压缩方法及系统
CN105975331A (zh) * 2016-04-26 2016-09-28 浪潮(北京)电子信息产业有限公司 一种数据并行处理方法及装置
CN111382853B (zh) * 2018-12-28 2022-12-09 上海寒武纪信息科技有限公司 数据处理装置、方法、芯片及电子设备
CN110990358B (zh) * 2019-09-30 2023-06-30 咪咕文化科技有限公司 一种解压缩方法、电子设备及计算机可读存储介质
JP7493001B2 (ja) 2022-09-13 2024-05-30 株式会社日立製作所 圧縮伸長装置、ストレージシステム、および圧縮伸長方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04302598A (ja) * 1991-03-29 1992-10-26 Nec Corp エントロピ符号化回路
JPH06153173A (ja) * 1992-11-02 1994-05-31 Nippon Telegr & Teleph Corp <Ntt> 動画像蓄積符号化伝送装置
JPH06326994A (ja) * 1993-05-18 1994-11-25 Hitachi Ltd 画像符号化および復号化装置
US5729228A (en) * 1995-07-06 1998-03-17 International Business Machines Corp. Parallel compression and decompression using a cooperative dictionary
JP3141149B2 (ja) * 1996-04-26 2001-03-05 株式会社日立製作所 画像符号化装置
US6819271B2 (en) * 1999-01-29 2004-11-16 Quickshift, Inc. Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US6300887B1 (en) * 1999-11-09 2001-10-09 Nokia Networks Oy Efficient handoff procedure for header compression
US6959110B1 (en) * 2000-08-17 2005-10-25 Nvidia Corporation Multi-mode texture compression algorithm
US7290063B2 (en) * 2001-01-10 2007-10-30 Nokia Corporation Relocating context information in header compression
US20030028673A1 (en) * 2001-08-01 2003-02-06 Intel Corporation System and method for compressing and decompressing browser cache in portable, handheld and wireless communication devices
JP2003189109A (ja) 2001-10-09 2003-07-04 Canon Inc 画像処理装置及び方法、並びにコンピュータ・プログラム
US6816093B1 (en) * 2003-12-03 2004-11-09 International Business Machines Corporation Apparatus method and system for increased digital media recording throughput
JP3989472B2 (ja) * 2004-07-30 2007-10-10 シャープ株式会社 画像データ処理回路およびそれを備えてなる画像処理装置
JP4329647B2 (ja) 2004-08-26 2009-09-09 ソニー株式会社 情報処理システム及び情報処理方法、並びにコンピュータプログラム
US7447814B1 (en) * 2005-10-14 2008-11-04 Sun Microsystems, Inc. Method and apparatus for fast loss-less memory data compression wherein data corresponds to a cache line of data in cache
JP2008252163A (ja) * 2007-03-29 2008-10-16 Kyocera Mita Corp データ圧縮装置、データ伸張装置、及び情報処理装置

Also Published As

Publication number Publication date
US8102287B2 (en) 2012-01-24
US20110018745A1 (en) 2011-01-27
JP2011029817A (ja) 2011-02-10

Similar Documents

Publication Publication Date Title
JP5017324B2 (ja) 圧縮伸長装置
US10366467B1 (en) Method and apparatus for accessing compressed data and/or uncompressed data of image frame in frame buffer
KR100606812B1 (ko) 비디오 디코딩 시스템
JP2011049764A (ja) データ圧縮伸長装置
JP5359569B2 (ja) メモリのアクセス方法
JPH07222164A (ja) ディジタルビデオ・ビットストリームコーダ
CN105791819B (zh) 一种图像的帧压缩方法、图像的解压缩方法及装置
US20110235936A1 (en) Routable image pipeline device
CN112866723B (zh) 图像数据处理方法与系统
WO2011001790A1 (ja) 圧縮データ送受信装置、データ圧縮装置、圧縮データ受信装置及びデータ圧縮方法
JP2728003B2 (ja) ゼロラン展開回路およびゼロラン展開方法
JP2002125127A (ja) 画像データ並び替え並び戻し装置及び画像圧縮伸長装置
US8872537B2 (en) Semiconductor integrated circuit, circuit testing system, circuit testing unit, and circuit test method
US11824566B2 (en) Data decompression device, data compression device, and memory system
JP2008103923A (ja) 画像処理装置及び撮像装置
KR100240005B1 (ko) 동영상 신호의 압축을 위한 프레임 메모리 제어방법 및 장치
JP2934425B1 (ja) 画像データ圧縮装置および画像データ伸長装置
JP5654809B2 (ja) 画像処理装置、画像処理方法
KR100911787B1 (ko) 시분할 다중화 방식을 적용한 통신 시스템에서의 데이터처리 방법
CN105991951A (zh) 一种视频参考帧数据存储的方法和设备
KR100571242B1 (ko) 카메라 영상 압축 방법
KR101355892B1 (ko) 실시간 단일 메모리 동시 입출력을 위한 영상데이터 처리방법
JP2004120027A (ja) 画像処理装置
US8160376B2 (en) Image compression apparatus
JP2020061622A (ja) 画像圧縮回路及び画像圧縮方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120418

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

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

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

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees