JPH08130652A - 2次元画像データの圧縮方式および伸長方式 - Google Patents
2次元画像データの圧縮方式および伸長方式Info
- Publication number
- JPH08130652A JPH08130652A JP28911094A JP28911094A JPH08130652A JP H08130652 A JPH08130652 A JP H08130652A JP 28911094 A JP28911094 A JP 28911094A JP 28911094 A JP28911094 A JP 28911094A JP H08130652 A JPH08130652 A JP H08130652A
- Authority
- JP
- Japan
- Prior art keywords
- data
- pixel
- partial data
- data string
- immediately preceding
- 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
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
【目的】 画像データの圧縮率を高め且つ高速に圧縮・
伸長するデータ圧縮・伸長方式を提供する。 【構成】 順次入力される画像データの直前ラインを保
持する辞書バッファ6と、現ラインから注目画素を先頭
画素とする複数の部分データ列を抽出するバッファ16
と、複数の部分データ列のうち直前ラインと最も長く一
致する圧縮対象部分データ列を検出する比較器7と、注
目画素と直前ライン上の圧縮対象部分データ列に対応す
る直前部分データ列の相対位置に応じて異なるコード
と、直前部分データ列の長さに応じて異なるコードを出
力し、同一ライン上で連続して圧縮対象部分データ列を
検出した場合、2回目以降の圧縮対象部分データ列の相
対位置に応じたコードに前回の圧縮対象部分データ列の
相対位置の各値毎に異なるものを割り当てる符号生成器
8とを備える。
伸長するデータ圧縮・伸長方式を提供する。 【構成】 順次入力される画像データの直前ラインを保
持する辞書バッファ6と、現ラインから注目画素を先頭
画素とする複数の部分データ列を抽出するバッファ16
と、複数の部分データ列のうち直前ラインと最も長く一
致する圧縮対象部分データ列を検出する比較器7と、注
目画素と直前ライン上の圧縮対象部分データ列に対応す
る直前部分データ列の相対位置に応じて異なるコード
と、直前部分データ列の長さに応じて異なるコードを出
力し、同一ライン上で連続して圧縮対象部分データ列を
検出した場合、2回目以降の圧縮対象部分データ列の相
対位置に応じたコードに前回の圧縮対象部分データ列の
相対位置の各値毎に異なるものを割り当てる符号生成器
8とを備える。
Description
【0001】
【産業上の利用分野】本発明は、2次元画像データにお
けるデータ圧縮方式及び伸長方式に関するものである。
けるデータ圧縮方式及び伸長方式に関するものである。
【0002】
【従来の技術】従来の画像圧縮方式としては、非可逆性
のデータ圧縮方式と可逆性のデータ圧縮方式がある。前
者の例として挙げることのできる離散コサイン変換(DC
T )を用いたJPEGやMPEGなどの非可逆性のデータ圧縮方
式では、カラーコード(カラーパレットの呼び出し符
号)を使用した画像データを圧縮する場合に情報落ちが
生じるため使用することができない。後者の可逆性のデ
ータ圧縮方式の代表的な方式が、情報のランレングス
(run length)を用いてデータ圧縮を行う方式(ランレ
ングス圧縮)、頻繁に現れる情報を辞書に登録しデータ
圧縮を行う方式(辞書圧縮)である。後者の方式は、IE
EE Transactions on Information Theory IT-24 、pp.5
30〜536 に掲載されたZiv 及びLempelによる論文“Comp
ression of Individual Sequenes via Variable Rate C
oding ”に開示されている。
のデータ圧縮方式と可逆性のデータ圧縮方式がある。前
者の例として挙げることのできる離散コサイン変換(DC
T )を用いたJPEGやMPEGなどの非可逆性のデータ圧縮方
式では、カラーコード(カラーパレットの呼び出し符
号)を使用した画像データを圧縮する場合に情報落ちが
生じるため使用することができない。後者の可逆性のデ
ータ圧縮方式の代表的な方式が、情報のランレングス
(run length)を用いてデータ圧縮を行う方式(ランレ
ングス圧縮)、頻繁に現れる情報を辞書に登録しデータ
圧縮を行う方式(辞書圧縮)である。後者の方式は、IE
EE Transactions on Information Theory IT-24 、pp.5
30〜536 に掲載されたZiv 及びLempelによる論文“Comp
ression of Individual Sequenes via Variable Rate C
oding ”に開示されている。
【0003】
【発明が解決しようとする課題】上記圧縮方式には、そ
れぞれ下記のような問題点がある。ランレングス圧縮
は、連続した同じ情報が多く含まれる画像データには効
果を発揮するが、そうでない画像データに対しては効果
が無く、圧縮の効果が全く現れない場合もある。
れぞれ下記のような問題点がある。ランレングス圧縮
は、連続した同じ情報が多く含まれる画像データには効
果を発揮するが、そうでない画像データに対しては効果
が無く、圧縮の効果が全く現れない場合もある。
【0004】辞書圧縮は、辞書に対するヒット率が高い
画像データには効果を発揮するが、そうでない画像デー
タに対しては効果が無い。また、ヒット率は辞書を記憶
するための記憶容量に依存するため、高いヒット率を得
たいならば容量の大きな格納場所が必要となる。更に、
容量の大きな辞書を持つことで辞書参照回数が増大し、
圧縮速度が低下する。
画像データには効果を発揮するが、そうでない画像デー
タに対しては効果が無い。また、ヒット率は辞書を記憶
するための記憶容量に依存するため、高いヒット率を得
たいならば容量の大きな格納場所が必要となる。更に、
容量の大きな辞書を持つことで辞書参照回数が増大し、
圧縮速度が低下する。
【0005】そこで、本発明は、上記圧縮方式の問題点
を補い、画像データのデータ圧縮率を高め情報量を低減
し且つ高速に圧縮することができるデータ圧縮方式及び
その圧縮されたデータを高速に伸長することができる伸
長方式を提供することを目的とする。
を補い、画像データのデータ圧縮率を高め情報量を低減
し且つ高速に圧縮することができるデータ圧縮方式及び
その圧縮されたデータを高速に伸長することができる伸
長方式を提供することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するため
に本発明のデータ圧縮方式では、順次スキャンされる2
次元画像データに対して直前ラインのデータを参照し、
現ラインから、注目画素を先頭画素とする長さが1画素
以上の部分データ列であって直前ラインのデータと最も
長く一致する圧縮対象部分データ列を検出した場合に、
前記圧縮対象部分データ列の圧縮データとして、前記注
目画素と直前ライン上の前記圧縮対象部分データ列に対
応する直前部分データ列の先頭画素との相対位置に応じ
て異なるコードを出力すると共に、前記直前部分データ
列の長さに応じて異なるコードを出力するデータ圧縮方
式であって、同一ライン上で前記圧縮対象部分データ列
を2回以上連続して検出した場合に、2回目以降に検出
した圧縮対象部分データ列の圧縮データとして出力する
前記相対位置に応じたコードに、前回出力した圧縮デー
タの相対位置をTとし、前記Tの各値毎に注目画素と直
前部分データ列の先頭画素との相対位置に応じて異なる
ものを割り当てる。
に本発明のデータ圧縮方式では、順次スキャンされる2
次元画像データに対して直前ラインのデータを参照し、
現ラインから、注目画素を先頭画素とする長さが1画素
以上の部分データ列であって直前ラインのデータと最も
長く一致する圧縮対象部分データ列を検出した場合に、
前記圧縮対象部分データ列の圧縮データとして、前記注
目画素と直前ライン上の前記圧縮対象部分データ列に対
応する直前部分データ列の先頭画素との相対位置に応じ
て異なるコードを出力すると共に、前記直前部分データ
列の長さに応じて異なるコードを出力するデータ圧縮方
式であって、同一ライン上で前記圧縮対象部分データ列
を2回以上連続して検出した場合に、2回目以降に検出
した圧縮対象部分データ列の圧縮データとして出力する
前記相対位置に応じたコードに、前回出力した圧縮デー
タの相対位置をTとし、前記Tの各値毎に注目画素と直
前部分データ列の先頭画素との相対位置に応じて異なる
ものを割り当てる。
【0007】また本発明のデータ伸長方式では、順次ス
キャンされる2次元画像データに対して直前ラインのデ
ータを参照し、現ラインから、注目画素を先頭画素とす
る長さが1画素以上の部分データ列であって直前ライン
のデータと最も長く一致する圧縮対象部分データ列を検
出した場合に、前記圧縮対象部分データ列の圧縮データ
として、前記注目画素と直前ライン上の前記圧縮対象部
分データ列に対応する直前部分データ列の先頭画素との
相対位置に応じて異なるコードと、前記直前部分データ
列の長さに応じて異なるコードが順次入力されると共
に、同一ライン上で前記圧縮対象部分データ列を2回以
上連続して検出した場合に、2回目以降に検出した圧縮
対象部分データ列の圧縮データとして入力される前記相
対位置に応じたコードに、前回入力された圧縮データの
相対位置の値をTとし、前記Tの各値毎に注目画素と直
前部分データ列の先頭画素との相対位置に応じて異なる
ものが割り当てられている2次元画像圧縮データの伸長
方式であって、少なくとも直前ラインの伸長されたデー
タを保持し、入力された圧縮データから前記相対位置と
前記直前部分データ列の長さに関する情報を抽出し、ま
た、入力された圧縮データが前記2回目以降に検出した
圧縮対象部分データ列の圧縮データのときは、前記Tの
値に基づいて前記相対位置に関する情報を抽出し、抽出
された前記相対位置と前記直前部分データ列の長さに関
する情報に基づいて、保持された直前ラインの伸長され
たデータから前記直前部分データ列を抽出し、入力され
た圧縮データの伸長データとして出力する。
キャンされる2次元画像データに対して直前ラインのデ
ータを参照し、現ラインから、注目画素を先頭画素とす
る長さが1画素以上の部分データ列であって直前ライン
のデータと最も長く一致する圧縮対象部分データ列を検
出した場合に、前記圧縮対象部分データ列の圧縮データ
として、前記注目画素と直前ライン上の前記圧縮対象部
分データ列に対応する直前部分データ列の先頭画素との
相対位置に応じて異なるコードと、前記直前部分データ
列の長さに応じて異なるコードが順次入力されると共
に、同一ライン上で前記圧縮対象部分データ列を2回以
上連続して検出した場合に、2回目以降に検出した圧縮
対象部分データ列の圧縮データとして入力される前記相
対位置に応じたコードに、前回入力された圧縮データの
相対位置の値をTとし、前記Tの各値毎に注目画素と直
前部分データ列の先頭画素との相対位置に応じて異なる
ものが割り当てられている2次元画像圧縮データの伸長
方式であって、少なくとも直前ラインの伸長されたデー
タを保持し、入力された圧縮データから前記相対位置と
前記直前部分データ列の長さに関する情報を抽出し、ま
た、入力された圧縮データが前記2回目以降に検出した
圧縮対象部分データ列の圧縮データのときは、前記Tの
値に基づいて前記相対位置に関する情報を抽出し、抽出
された前記相対位置と前記直前部分データ列の長さに関
する情報に基づいて、保持された直前ラインの伸長され
たデータから前記直前部分データ列を抽出し、入力され
た圧縮データの伸長データとして出力する。
【0008】また、上記データ圧縮方式を実現するデー
タ圧縮装置は、順次入力される2次元画像データに対し
て1ライン前のデータを保持する参照メモリ手段と、入
力された現ラインの信号から注目画素を先頭画素とする
長さが1画素以上の複数の部分データ列を抽出して記憶
するバッファ手段と、前記バッファ手段に記憶された前
記部分データ列のうち前記参照メモリ手段に記憶された
データと最も長く一致する部分データ列である圧縮対象
部分データ列を検出する走査比較手段と、前記走査比較
手段が前記圧縮対象部分データ列を検出した場合に、前
記圧縮対象部分データ列の圧縮データとして、前記注目
画素と前記参照メモリ手段に記憶されたデータ上の前記
圧縮対象部分データ列に対応する直前部分データ列の先
頭画素との相対位置に応じて異なるコードと、前記直前
部分データ列の長さに応じて異なるコードを出力すると
共に、前記走査比較手段が同一ライン上で前記圧縮対象
部分データ列を2回以上連続して検出した場合に、2回
目以降に検出した圧縮対象部分データ列の圧縮データと
して出力する前記相対位置に応じたコードに、前回出力
した圧縮データの相対位置をTとし、前記Tの各値毎に
注目画素と直前部分データ列の先頭画素との相対位置に
応じて異なるものを割り当てる符号生成手段と、を備え
る。
タ圧縮装置は、順次入力される2次元画像データに対し
て1ライン前のデータを保持する参照メモリ手段と、入
力された現ラインの信号から注目画素を先頭画素とする
長さが1画素以上の複数の部分データ列を抽出して記憶
するバッファ手段と、前記バッファ手段に記憶された前
記部分データ列のうち前記参照メモリ手段に記憶された
データと最も長く一致する部分データ列である圧縮対象
部分データ列を検出する走査比較手段と、前記走査比較
手段が前記圧縮対象部分データ列を検出した場合に、前
記圧縮対象部分データ列の圧縮データとして、前記注目
画素と前記参照メモリ手段に記憶されたデータ上の前記
圧縮対象部分データ列に対応する直前部分データ列の先
頭画素との相対位置に応じて異なるコードと、前記直前
部分データ列の長さに応じて異なるコードを出力すると
共に、前記走査比較手段が同一ライン上で前記圧縮対象
部分データ列を2回以上連続して検出した場合に、2回
目以降に検出した圧縮対象部分データ列の圧縮データと
して出力する前記相対位置に応じたコードに、前回出力
した圧縮データの相対位置をTとし、前記Tの各値毎に
注目画素と直前部分データ列の先頭画素との相対位置に
応じて異なるものを割り当てる符号生成手段と、を備え
る。
【0009】さらに、上記データ伸長方式を実現するデ
ータ伸長装置は、順次スキャンされる2次元画像データ
に対して直前ラインのデータを参照し、現ラインから、
注目画素を先頭画素とする長さが1画素以上の部分デー
タ列であって直前ラインのデータと最も長く一致する圧
縮対象部分データ列を検出した場合に、前記圧縮対象部
分データ列の圧縮データとして、前記注目画素と直前ラ
イン上の前記圧縮対象部分データ列に対応する直前部分
データ列の先頭画素との相対位置に応じて異なるコード
と、前記直前部分データ列の長さに応じて異なるコード
が順次入力されると共に、同一ライン上で前記圧縮対象
部分データ列を2回以上連続して検出した場合に、2回
目以降に検出した圧縮対象部分データ列の圧縮データと
して入力される前記相対位置に応じたコードに、前回入
力された圧縮データの相対位置の値をTとし、前記Tの
各値毎に注目画素と直前部分データ列の先頭画素との相
対位置に応じて異なるものが割り当てられている2次元
画像圧縮データの伸長装置であって、少なくとも直前ラ
インの伸長されたデータを保持するバッファメモリ手段
と、入力された圧縮データから前記相対位置と前記直前
部分データ列の長さに関する情報を抽出し、また、入力
された圧縮データが前記2回目以降に検出した圧縮対象
部分データ列の圧縮データのときは、前記Tの値に基づ
いて前記相対位置に関する情報を抽出する抽出手段と、
前記抽出手段により抽出された前記相対位置と前記直前
部分データ列の長さに関する情報に基づいて、前記バッ
ファメモリ手段に保持された直前ラインの伸長されたデ
ータから前記直前部分データ列を抽出し、入力された圧
縮データの伸長データとして出力する復号手段と、を備
えたことを特徴とする。
ータ伸長装置は、順次スキャンされる2次元画像データ
に対して直前ラインのデータを参照し、現ラインから、
注目画素を先頭画素とする長さが1画素以上の部分デー
タ列であって直前ラインのデータと最も長く一致する圧
縮対象部分データ列を検出した場合に、前記圧縮対象部
分データ列の圧縮データとして、前記注目画素と直前ラ
イン上の前記圧縮対象部分データ列に対応する直前部分
データ列の先頭画素との相対位置に応じて異なるコード
と、前記直前部分データ列の長さに応じて異なるコード
が順次入力されると共に、同一ライン上で前記圧縮対象
部分データ列を2回以上連続して検出した場合に、2回
目以降に検出した圧縮対象部分データ列の圧縮データと
して入力される前記相対位置に応じたコードに、前回入
力された圧縮データの相対位置の値をTとし、前記Tの
各値毎に注目画素と直前部分データ列の先頭画素との相
対位置に応じて異なるものが割り当てられている2次元
画像圧縮データの伸長装置であって、少なくとも直前ラ
インの伸長されたデータを保持するバッファメモリ手段
と、入力された圧縮データから前記相対位置と前記直前
部分データ列の長さに関する情報を抽出し、また、入力
された圧縮データが前記2回目以降に検出した圧縮対象
部分データ列の圧縮データのときは、前記Tの値に基づ
いて前記相対位置に関する情報を抽出する抽出手段と、
前記抽出手段により抽出された前記相対位置と前記直前
部分データ列の長さに関する情報に基づいて、前記バッ
ファメモリ手段に保持された直前ラインの伸長されたデ
ータから前記直前部分データ列を抽出し、入力された圧
縮データの伸長データとして出力する復号手段と、を備
えたことを特徴とする。
【0010】
【作用】本発明の理解を容易にするため、本発明の原理
を図面を用いて説明する。本発明では画像データのある
画素は近傍の画素群に類似するという性質を利用し、順
次スキャンされる2次元画像データ(図1に示す)にお
いて、直前ラインのデータを参照データ(これを記憶す
るバッファを「辞書」ということにする)Aとして保持
する。そして、辞書Aを参照し、現ラインから、注目画
素Bを先頭画素とする長さが1画素以上の部分データ列
であって辞書Aのデータと最も長く一致する圧縮対象部
分データ列Cを検出する。次に、注目画素Bと辞書A上
の圧縮対象部分データ列Cに対応する直前部分データ列
Dの先頭画素Eとの2次元空間上の相対位置に応じて異
なるコードを出力すると共に、直前部分データ列Dの長
さ(ここでは2ドット)に応じて異なるコードを出力す
る。これにより、圧縮対象部分データ列Cのデータ圧縮
を行う。また、上記のデータ圧縮を2回以上連続して行
う場合、すなわち、圧縮対象部分データ列Cに続くデー
タFを注目画素とする圧縮対象部分データ列Gを検出し
た場合、圧縮対象部分データ列Gの圧縮データとして出
力する相対位置に応じたコードに、前回出力した圧縮対
象部分データ列Cの圧縮データの相対位置をT(この場
合、注目画素Bと直前部分データ列Dの先頭画素Eは同
一画素位置にあるのでT=0とする)とし、Tの各値毎
に注目画素Fと、辞書A上の圧縮対象部分データ列Gに
対応する直前部分データ列Hの先頭画素Jとの2次元空
間上の相対位置に応じて異なるコードを割り当てる。上
記コードは、固定長符号とはせず生起確立の高いデータ
に短い符号を割当て圧縮率を上げるために可変長符号と
することが望ましい。尚、本発明では、現ラインから、
注目画素を先頭画素とする部分データ列であって辞書の
データと最も長く一致する圧縮対象部分データ列を検出
することとしているので、同一ライン上で上記のデータ
圧縮が2回以上連続する場合、2回目以降のデータ圧縮
における相対位置が直前に行われたデータ圧縮における
相対位置と一致することはない。たとえば、直前の圧縮
対象部分データ列の相対位置が同一画素位置(T=0)
の場合、今回の圧縮対象部分データ列の相対位置が同一
画素位置となることはない。したがって、同一ライン上
で上記のデータ圧縮が2回以上連続する場合、2回目以
降のデータ圧縮において、直前に行われたデータ圧縮に
おける相対位置と同じ相対位置にコードを割り当てる必
要はない。このため、本発明では、同一ライン上で上記
のデータ圧縮が2回以上連続する場合、2回目以降のデ
ータ圧縮において、直前に行われたデータ圧縮における
相対位置をTとし、今回行うデータ圧縮における相対位
置を表すコードをTの各値毎に用意することにより、直
前に行われたデータ圧縮における相対位置にコードを割
り当てるという無駄を省き、これにより、符号の冗長性
を改善して圧縮率を高める。
を図面を用いて説明する。本発明では画像データのある
画素は近傍の画素群に類似するという性質を利用し、順
次スキャンされる2次元画像データ(図1に示す)にお
いて、直前ラインのデータを参照データ(これを記憶す
るバッファを「辞書」ということにする)Aとして保持
する。そして、辞書Aを参照し、現ラインから、注目画
素Bを先頭画素とする長さが1画素以上の部分データ列
であって辞書Aのデータと最も長く一致する圧縮対象部
分データ列Cを検出する。次に、注目画素Bと辞書A上
の圧縮対象部分データ列Cに対応する直前部分データ列
Dの先頭画素Eとの2次元空間上の相対位置に応じて異
なるコードを出力すると共に、直前部分データ列Dの長
さ(ここでは2ドット)に応じて異なるコードを出力す
る。これにより、圧縮対象部分データ列Cのデータ圧縮
を行う。また、上記のデータ圧縮を2回以上連続して行
う場合、すなわち、圧縮対象部分データ列Cに続くデー
タFを注目画素とする圧縮対象部分データ列Gを検出し
た場合、圧縮対象部分データ列Gの圧縮データとして出
力する相対位置に応じたコードに、前回出力した圧縮対
象部分データ列Cの圧縮データの相対位置をT(この場
合、注目画素Bと直前部分データ列Dの先頭画素Eは同
一画素位置にあるのでT=0とする)とし、Tの各値毎
に注目画素Fと、辞書A上の圧縮対象部分データ列Gに
対応する直前部分データ列Hの先頭画素Jとの2次元空
間上の相対位置に応じて異なるコードを割り当てる。上
記コードは、固定長符号とはせず生起確立の高いデータ
に短い符号を割当て圧縮率を上げるために可変長符号と
することが望ましい。尚、本発明では、現ラインから、
注目画素を先頭画素とする部分データ列であって辞書の
データと最も長く一致する圧縮対象部分データ列を検出
することとしているので、同一ライン上で上記のデータ
圧縮が2回以上連続する場合、2回目以降のデータ圧縮
における相対位置が直前に行われたデータ圧縮における
相対位置と一致することはない。たとえば、直前の圧縮
対象部分データ列の相対位置が同一画素位置(T=0)
の場合、今回の圧縮対象部分データ列の相対位置が同一
画素位置となることはない。したがって、同一ライン上
で上記のデータ圧縮が2回以上連続する場合、2回目以
降のデータ圧縮において、直前に行われたデータ圧縮に
おける相対位置と同じ相対位置にコードを割り当てる必
要はない。このため、本発明では、同一ライン上で上記
のデータ圧縮が2回以上連続する場合、2回目以降のデ
ータ圧縮において、直前に行われたデータ圧縮における
相対位置をTとし、今回行うデータ圧縮における相対位
置を表すコードをTの各値毎に用意することにより、直
前に行われたデータ圧縮における相対位置にコードを割
り当てるという無駄を省き、これにより、符号の冗長性
を改善して圧縮率を高める。
【0011】また、注目画素が現ラインの先頭に位置す
る場合、直前部分データ列の先頭画素が注目画素より左
側に位置することはない。したがって、上記のデータ圧
縮において、注目画素が現ラインの先頭に位置する場
合、直前部分データ列の先頭画素が注目画素より左側に
位置する相対位置にコードを割り当てる必要はない。ま
た、注目画素が現ラインの終端に位置する場合、直前部
分データ列の先頭画素が注目画素より右側に位置するこ
とはない。したがって、上記のデータ圧縮において、注
目画素が現ラインの終端に位置する場合、直前部分デー
タ列の先頭画素が注目画素より右側に位置する相対位置
にコードを割り当てる必要はない。このため、本発明で
は、2次元画像データの1ラインの画素数をH、注目画
素の現ラインの先頭画素からの位置をx(0≦x≦H−
1)、x=0のときはS=0、1≦x≦H−2のときは
S=1、x=H−1のときはS=2とし、相対位置を表
すコードをSの各値毎に用意すると共に、同一ライン上
で上記のデータ圧縮が2回以上連続する場合はT及びS
の各値毎に用意することにより、注目画素が現ラインの
先頭又は終端に位置する場合に、採り得ることのない相
対位置にコードを割り当てるという無駄を省き、これに
より、更に符号の冗長性を改善して圧縮率を高めるのが
望ましい。
る場合、直前部分データ列の先頭画素が注目画素より左
側に位置することはない。したがって、上記のデータ圧
縮において、注目画素が現ラインの先頭に位置する場
合、直前部分データ列の先頭画素が注目画素より左側に
位置する相対位置にコードを割り当てる必要はない。ま
た、注目画素が現ラインの終端に位置する場合、直前部
分データ列の先頭画素が注目画素より右側に位置するこ
とはない。したがって、上記のデータ圧縮において、注
目画素が現ラインの終端に位置する場合、直前部分デー
タ列の先頭画素が注目画素より右側に位置する相対位置
にコードを割り当てる必要はない。このため、本発明で
は、2次元画像データの1ラインの画素数をH、注目画
素の現ラインの先頭画素からの位置をx(0≦x≦H−
1)、x=0のときはS=0、1≦x≦H−2のときは
S=1、x=H−1のときはS=2とし、相対位置を表
すコードをSの各値毎に用意すると共に、同一ライン上
で上記のデータ圧縮が2回以上連続する場合はT及びS
の各値毎に用意することにより、注目画素が現ラインの
先頭又は終端に位置する場合に、採り得ることのない相
対位置にコードを割り当てるという無駄を省き、これに
より、更に符号の冗長性を改善して圧縮率を高めるのが
望ましい。
【0012】尚、辞書に対する参照範囲は、注目画素を
先頭画素とする部分データ列と辞書上の部分データ列と
の類似度が高い範囲内に限定するのが望ましい。また、
注目画素を先頭画素とする部分データ列が辞書上の部分
データ列と一致しない場合は、ランレングス圧縮などを
適用する。
先頭画素とする部分データ列と辞書上の部分データ列と
の類似度が高い範囲内に限定するのが望ましい。また、
注目画素を先頭画素とする部分データ列が辞書上の部分
データ列と一致しない場合は、ランレングス圧縮などを
適用する。
【0013】本発明は、上記のように、辞書の容量は直
前ラインのみを格納すれば良いので非常に小さい。ま
た、類似度の高い範囲内で辞書を参照すると共にできる
だけ長い部分データ列を参照するので、圧縮率が高く且
つ圧縮・伸長を高速に処理することが可能である。さら
に、同一ライン上で圧縮対象部分データ列を2回以上連
続して検出した場合に、2回目以降に検出した圧縮対象
部分データ列の圧縮データとして出力する相対位置に応
じたコードに、Tの各値毎に相対位置に応じて異なるも
のを割り当てることにより、相対位置を表す符号の冗長
性を改善し、圧縮率を高めることができる。また、画像
データの1ライン目や辞書参照が不可能な部分データ列
にランレングス圧縮などを適用することで、更に、高い
圧縮率が得られる。
前ラインのみを格納すれば良いので非常に小さい。ま
た、類似度の高い範囲内で辞書を参照すると共にできる
だけ長い部分データ列を参照するので、圧縮率が高く且
つ圧縮・伸長を高速に処理することが可能である。さら
に、同一ライン上で圧縮対象部分データ列を2回以上連
続して検出した場合に、2回目以降に検出した圧縮対象
部分データ列の圧縮データとして出力する相対位置に応
じたコードに、Tの各値毎に相対位置に応じて異なるも
のを割り当てることにより、相対位置を表す符号の冗長
性を改善し、圧縮率を高めることができる。また、画像
データの1ライン目や辞書参照が不可能な部分データ列
にランレングス圧縮などを適用することで、更に、高い
圧縮率が得られる。
【0014】
【実施例】以下に、本発明の一実施例を図2乃至図6に
したがって詳述する。図2は本発明のデータ圧縮回路の
構成例、図3は本発明のデータ圧縮アルゴリズムのフロ
ーチャートである。図2において、5はラインバッフ
ァ、6は1ライン前のデータを保持する辞書バッファ、
7は比較器、8は符号生成器、9は加算器、10はポイ
ンタ、11は相対位置カウンタ、12はポインタバッフ
ァ、13は長さカウンタ、14は相対位置・長さバッフ
ァ、15はセレクタ、16は部分列バッファを示す。ま
た、17はラインバッファへの入力信号線、18は辞書
バッファへの入力信号線、19は符号出力線を示す。
したがって詳述する。図2は本発明のデータ圧縮回路の
構成例、図3は本発明のデータ圧縮アルゴリズムのフロ
ーチャートである。図2において、5はラインバッフ
ァ、6は1ライン前のデータを保持する辞書バッファ、
7は比較器、8は符号生成器、9は加算器、10はポイ
ンタ、11は相対位置カウンタ、12はポインタバッフ
ァ、13は長さカウンタ、14は相対位置・長さバッフ
ァ、15はセレクタ、16は部分列バッファを示す。ま
た、17はラインバッファへの入力信号線、18は辞書
バッファへの入力信号線、19は符号出力線を示す。
【0015】次に、図3に示すフローに基づいて上記の
ように構成されたデータ圧縮回路の動作の概要を示す。
先ず、処理20でポインタ10等を初期化し、順次入力
される画像データをラインバッファ入力信号線17を通
してラインバッファ5へ格納する。この際、辞書バッフ
ァ入力信号線18を通して辞書バッファ6にラインバッ
ファ5から押し出されるデータを格納する。次に、処理
21でラインバッファ5に入力されたラインデータが1
ライン目のデータであるか否かを判断する。ラインバッ
ファ5に入力されたラインデータが1ライン目のデータ
である場合、参照すべきデータが辞書バッファ6に未だ
格納されていないので、ランレングス圧縮を行う(処理
25)。すなわち、現ライン上に同一画素ができるだけ
長く連続する部分データ列を検索する。先ず、ポインタ
10の指すラインバッファ5のデータを部分列バッファ
16に格納し、ポインタ10を1つ進め、ラインバッフ
ァ5のデータをセレクタ15を通して、比較器7に入力
し、部分列バッファ16のデータと比較する。比較の結
果が一致するならば、長さカウンタ13をインクリメン
トし、次のポインタ10の指すデータをセレクタ15を
通して比較器7に入力し部分列バッファ16のデータと
比較する。そして、比較の結果が一致しなくなるまでポ
インタ10を1つずつ進め部分列バッファ16のデータ
との比較を繰り返す。これにより、比較結果が一致しな
くなった時点で長さカウンタ13に計数されている値が
現ライン上の同一画素が連続した部分データ列の長さL
として計数される。次に、長さカウンタ13により計数
された部分データ列の長さLのデータと部分列バッファ
16に格納された生データとを符号生成器8に入力す
る。符号生成器8は、部分データ列の長さLのデータと
その生データとをコード化し、符号出力線19を通し
て、そのコードを出力する(処理26)。このようにし
て1ライン目の全てのデータを処理する。
ように構成されたデータ圧縮回路の動作の概要を示す。
先ず、処理20でポインタ10等を初期化し、順次入力
される画像データをラインバッファ入力信号線17を通
してラインバッファ5へ格納する。この際、辞書バッフ
ァ入力信号線18を通して辞書バッファ6にラインバッ
ファ5から押し出されるデータを格納する。次に、処理
21でラインバッファ5に入力されたラインデータが1
ライン目のデータであるか否かを判断する。ラインバッ
ファ5に入力されたラインデータが1ライン目のデータ
である場合、参照すべきデータが辞書バッファ6に未だ
格納されていないので、ランレングス圧縮を行う(処理
25)。すなわち、現ライン上に同一画素ができるだけ
長く連続する部分データ列を検索する。先ず、ポインタ
10の指すラインバッファ5のデータを部分列バッファ
16に格納し、ポインタ10を1つ進め、ラインバッフ
ァ5のデータをセレクタ15を通して、比較器7に入力
し、部分列バッファ16のデータと比較する。比較の結
果が一致するならば、長さカウンタ13をインクリメン
トし、次のポインタ10の指すデータをセレクタ15を
通して比較器7に入力し部分列バッファ16のデータと
比較する。そして、比較の結果が一致しなくなるまでポ
インタ10を1つずつ進め部分列バッファ16のデータ
との比較を繰り返す。これにより、比較結果が一致しな
くなった時点で長さカウンタ13に計数されている値が
現ライン上の同一画素が連続した部分データ列の長さL
として計数される。次に、長さカウンタ13により計数
された部分データ列の長さLのデータと部分列バッファ
16に格納された生データとを符号生成器8に入力す
る。符号生成器8は、部分データ列の長さLのデータと
その生データとをコード化し、符号出力線19を通し
て、そのコードを出力する(処理26)。このようにし
て1ライン目の全てのデータを処理する。
【0016】処理21でラインバッファ5に入力された
ラインデータが2ライン目以降のデータである場合、ラ
インバッファ5に格納された現ラインのデータから、ポ
インタ10の指すラインバッファ5のデータを先頭画素
とする長さが1画素以上の部分データ列(これを検索対
象部分データ列と定義する)であって、辞書上のデータ
と最も長く一致する圧縮対象部分データ列の検索を行う
(処理22)。この圧縮対象部分データ列の検索は図3
には処理22として1つのフローで示して有るが、以下
の手順で行われる。圧縮対象部分データ列の検索の概念
を8×8の画像データを示す図4を例として説明する。
本実施例では、検索対象部分データ列に対して1ライン
前のラインにその検索対象部分データ列と同じ部分デー
タ列が存在するか否かを、検索対象部分データ列の先頭
画素(これを注目画素と定義する)位置から−1戻った
位置(相対位置−1と定義する)から+1進んだ位置
(相対位置+1と定義する)において、注目画素と同じ
画素が存在するか否かを検索することによって判定して
いる。即ち、1ライン前に左右1画素分ずれた範囲内に
同じ画素列が存在する場合に処理24の圧縮が行なわれ
る。
ラインデータが2ライン目以降のデータである場合、ラ
インバッファ5に格納された現ラインのデータから、ポ
インタ10の指すラインバッファ5のデータを先頭画素
とする長さが1画素以上の部分データ列(これを検索対
象部分データ列と定義する)であって、辞書上のデータ
と最も長く一致する圧縮対象部分データ列の検索を行う
(処理22)。この圧縮対象部分データ列の検索は図3
には処理22として1つのフローで示して有るが、以下
の手順で行われる。圧縮対象部分データ列の検索の概念
を8×8の画像データを示す図4を例として説明する。
本実施例では、検索対象部分データ列に対して1ライン
前のラインにその検索対象部分データ列と同じ部分デー
タ列が存在するか否かを、検索対象部分データ列の先頭
画素(これを注目画素と定義する)位置から−1戻った
位置(相対位置−1と定義する)から+1進んだ位置
(相対位置+1と定義する)において、注目画素と同じ
画素が存在するか否かを検索することによって判定して
いる。即ち、1ライン前に左右1画素分ずれた範囲内に
同じ画素列が存在する場合に処理24の圧縮が行なわれ
る。
【0017】図4(a)で言えば、(1)相対位置−1
の例としては、3行1列目の「5」に続く部分データ列
「554」がある。この部分データ列「554」は2行
の0列目の「5」に続く部分データ列「554」と同じ
データ列であるので左に1画素ずれた位置に同一部分デ
ータ列が存在すると判定される。(2)相対位置0の例
としては、1行4列目の「3」に続く部分データ列「3
4」がある。この部分データ列「34」は0行の4列目
の「3」に続く部分データ列「34」と同じデータ列で
あるので0画素ずれた位置に同一部分データ列が存在す
ると判定される。(3)相対位置+1の例としては、2
行0列目の「5」に続く部分データ列「55434」が
ある。この部分データ列「55434」は1行1列目の
「5」に続く部分データ列「55434」と同じデータ
列であるので右に1画素ずれた位置に同一部分データ列
が存在すると判定される。
の例としては、3行1列目の「5」に続く部分データ列
「554」がある。この部分データ列「554」は2行
の0列目の「5」に続く部分データ列「554」と同じ
データ列であるので左に1画素ずれた位置に同一部分デ
ータ列が存在すると判定される。(2)相対位置0の例
としては、1行4列目の「3」に続く部分データ列「3
4」がある。この部分データ列「34」は0行の4列目
の「3」に続く部分データ列「34」と同じデータ列で
あるので0画素ずれた位置に同一部分データ列が存在す
ると判定される。(3)相対位置+1の例としては、2
行0列目の「5」に続く部分データ列「55434」が
ある。この部分データ列「55434」は1行1列目の
「5」に続く部分データ列「55434」と同じデータ
列であるので右に1画素ずれた位置に同一部分データ列
が存在すると判定される。
【0018】処理22では先ず、ポインタ10のデータ
をポインタバッファ12に格納し、相対位置カウンタ1
1を初期化する。次に、ポインタ10の指すラインバッ
ファ5のデータ、すなわち注目画素が部分列バッファ1
6に取り込まれる。部分列バッファ16に取り込まれた
注目画素と一致する画素が有るか無いかについて、辞書
バッファに記憶された1ライン前の相対位置−1の画
素、相対位置0の画素、及び相対位置+1の画素を対象
に検索し、無い場合は、相対位置・長さバッファ14に
それぞれの相対位置毎に長さ「0」を書き込んで処理2
3に進む。図4(a)では1行3列の「4」は、0行2
列、0行3列が「2」であり、0行4列が「3」である
ので、相対位置・長さバッファ14にポイント(1、
3)の長さデータとして相対位置−1、0、+1ともに
「0」が書き込まれる。一致する画素が存在する場合
は、ポインタ10と長さカウンタ15をインクリメント
し、注目画素の隣の画素のデータを部分列バッファ16
に取り込む。このときポインタバッファ12には今回の
検索で検索中の検索対象部分データ列の先頭画素、すな
わち注目画素の現ラインの先頭画素からの位置が残され
ている。
をポインタバッファ12に格納し、相対位置カウンタ1
1を初期化する。次に、ポインタ10の指すラインバッ
ファ5のデータ、すなわち注目画素が部分列バッファ1
6に取り込まれる。部分列バッファ16に取り込まれた
注目画素と一致する画素が有るか無いかについて、辞書
バッファに記憶された1ライン前の相対位置−1の画
素、相対位置0の画素、及び相対位置+1の画素を対象
に検索し、無い場合は、相対位置・長さバッファ14に
それぞれの相対位置毎に長さ「0」を書き込んで処理2
3に進む。図4(a)では1行3列の「4」は、0行2
列、0行3列が「2」であり、0行4列が「3」である
ので、相対位置・長さバッファ14にポイント(1、
3)の長さデータとして相対位置−1、0、+1ともに
「0」が書き込まれる。一致する画素が存在する場合
は、ポインタ10と長さカウンタ15をインクリメント
し、注目画素の隣の画素のデータを部分列バッファ16
に取り込む。このときポインタバッファ12には今回の
検索で検索中の検索対象部分データ列の先頭画素、すな
わち注目画素の現ラインの先頭画素からの位置が残され
ている。
【0019】注目画素が相対位置−1に一致を発見した
場合は、注目画素の隣の画素については1ライン前のデ
ータの相対位置−1の画素のデータと部分列バッファ1
6に取り込まれた画素との比較が行われ、相対位置0に
一致を発見した場合は、注目画素の隣の画素については
1ライン前のデータの相対位置0の画素のデータと部分
列バッファ16に取り込まれた画素との比較が行われ、
相対位置+1に一致を発見した場合は、注目画素の隣の
画素については1ライン前のデータの相対位置+1の画
素のデータと部分列バッファ16に取り込まれた画素と
の比較が行われる。上記それぞれの比較結果が一致を示
す場合には、更に隣の画素ポインタ10をインクリメン
トし、隣の画素のデータを部分列バッファ16に取り込
み、長さカウンタ15をインクリメントする。そして、
上記それぞれの比較結果が一致しなくなるまで繰り返
す。これにより、比較結果が一致しなくなった時点で長
さカウンタ15に計数されている値が1ライン前のデー
タに同じデータ列を持つ部分データ列の長さLとして計
測される。この長さ情報Lは相対位置−1、相対位置
0、相対位置+1のそれぞれについて計数される。すな
わち、相対位置−1について上記のようにして長さLを
計数した後、その長さLを相対位置−1についての長さ
情報として相対位置・長さバッファの相対位置−1の欄
に記憶する。次に、相対位置0についての検索を行うた
め、ポインタバッファ12に一時保存しておいた注目画
素の現ラインの先頭画素からの位置をポインタ10に戻
し、相対位置カウンタ11をインクリメントし、注目画
素の右隣のデータについて同様に相対位置0のデータが
一致しなくなるまで画素ポインタ10をインクリメント
しながら比較を行い、長さ情報Lを求める。続いて相対
位置+1について同様の検索を行う。
場合は、注目画素の隣の画素については1ライン前のデ
ータの相対位置−1の画素のデータと部分列バッファ1
6に取り込まれた画素との比較が行われ、相対位置0に
一致を発見した場合は、注目画素の隣の画素については
1ライン前のデータの相対位置0の画素のデータと部分
列バッファ16に取り込まれた画素との比較が行われ、
相対位置+1に一致を発見した場合は、注目画素の隣の
画素については1ライン前のデータの相対位置+1の画
素のデータと部分列バッファ16に取り込まれた画素と
の比較が行われる。上記それぞれの比較結果が一致を示
す場合には、更に隣の画素ポインタ10をインクリメン
トし、隣の画素のデータを部分列バッファ16に取り込
み、長さカウンタ15をインクリメントする。そして、
上記それぞれの比較結果が一致しなくなるまで繰り返
す。これにより、比較結果が一致しなくなった時点で長
さカウンタ15に計数されている値が1ライン前のデー
タに同じデータ列を持つ部分データ列の長さLとして計
測される。この長さ情報Lは相対位置−1、相対位置
0、相対位置+1のそれぞれについて計数される。すな
わち、相対位置−1について上記のようにして長さLを
計数した後、その長さLを相対位置−1についての長さ
情報として相対位置・長さバッファの相対位置−1の欄
に記憶する。次に、相対位置0についての検索を行うた
め、ポインタバッファ12に一時保存しておいた注目画
素の現ラインの先頭画素からの位置をポインタ10に戻
し、相対位置カウンタ11をインクリメントし、注目画
素の右隣のデータについて同様に相対位置0のデータが
一致しなくなるまで画素ポインタ10をインクリメント
しながら比較を行い、長さ情報Lを求める。続いて相対
位置+1について同様の検索を行う。
【0020】図4(a)の2行0列の「5」を先頭画素
とする部分データ列を考えると、この画素はライン先頭
なので前のラインの相対位置−1にデータが存在しな
い。したがって、相対位置−1については、長さLは0
となる。相対位置0については1行0列に「5」が存在
するので、長さカウンタ13をインクリメントして2行
0列の「5」の隣接する2行1列のデータ「5」が部分
列バッファ16に取り込まれ1行1列の「5」と比較さ
れる。これも一致するので、長さカウンタ13をインク
リメントするとともに2行1列の「5」の隣接する2行
2列のデータ「4」が部分列バッファ16に取り込まれ
1行2列の「5」と比較される。これは異なるのでこの
ときまでに一致したデータの数「2」が2行0列の
「5」を先頭画素とする部分データ列の相対位置0につ
いての長さL=2となる。
とする部分データ列を考えると、この画素はライン先頭
なので前のラインの相対位置−1にデータが存在しな
い。したがって、相対位置−1については、長さLは0
となる。相対位置0については1行0列に「5」が存在
するので、長さカウンタ13をインクリメントして2行
0列の「5」の隣接する2行1列のデータ「5」が部分
列バッファ16に取り込まれ1行1列の「5」と比較さ
れる。これも一致するので、長さカウンタ13をインク
リメントするとともに2行1列の「5」の隣接する2行
2列のデータ「4」が部分列バッファ16に取り込まれ
1行2列の「5」と比較される。これは異なるのでこの
ときまでに一致したデータの数「2」が2行0列の
「5」を先頭画素とする部分データ列の相対位置0につ
いての長さL=2となる。
【0021】2行0列の「5」を先頭画素とする部分デ
ータ列については、1行1列に「5」が存在し先頭画素
と一致するので相対位置+1についても隣接画素の比較
を行う。2行0列の「5」の隣接する2行1列のデータ
「5」が部分列バッファ16に取り込まれ、相対位置+
1の1行2列の「5」と比較される。一致するので順次
右側の画素を取り込み比較を続けると、2行5列の
「3」と1行6列の「1」の比較を行った時に不一致に
なる。従って、このときの長さカウンタ13の値「5」
が2行0列の「5」を先頭画素とする部分データ列の相
対位置0についての長さL=5となる。
ータ列については、1行1列に「5」が存在し先頭画素
と一致するので相対位置+1についても隣接画素の比較
を行う。2行0列の「5」の隣接する2行1列のデータ
「5」が部分列バッファ16に取り込まれ、相対位置+
1の1行2列の「5」と比較される。一致するので順次
右側の画素を取り込み比較を続けると、2行5列の
「3」と1行6列の「1」の比較を行った時に不一致に
なる。従って、このときの長さカウンタ13の値「5」
が2行0列の「5」を先頭画素とする部分データ列の相
対位置0についての長さL=5となる。
【0022】以上により、2行0列の「5」を先頭画素
とする部分データ列の長さLとしては、L(相対位置−
1)=0,L(相対位置0)=2,L(相対位置+1)
=5の3つが相対位置・長さバッファに記憶されること
になる。この中で最長の5を長さLとする部分データ列
を圧縮対象部分データ列として選択する。図4(a)の
場合、同図(b)に示すように部分データ列A(55)
は相対位置0の同一部分データ列を示し、部分データ列
B(55434)は相対位置+1の同一部分データ列を
示す。部分データ列Aは長さ2、部分データ列Bは長さ
5であるので圧縮効率の高い部分データ列Bを圧縮対象
部分データ列として選択する。
とする部分データ列の長さLとしては、L(相対位置−
1)=0,L(相対位置0)=2,L(相対位置+1)
=5の3つが相対位置・長さバッファに記憶されること
になる。この中で最長の5を長さLとする部分データ列
を圧縮対象部分データ列として選択する。図4(a)の
場合、同図(b)に示すように部分データ列A(55)
は相対位置0の同一部分データ列を示し、部分データ列
B(55434)は相対位置+1の同一部分データ列を
示す。部分データ列Aは長さ2、部分データ列Bは長さ
5であるので圧縮効率の高い部分データ列Bを圧縮対象
部分データ列として選択する。
【0023】処理22で圧縮対象部分データ列が見つか
った場合は処理23を介して処理24に移行し、相対位
置・長さバッファ14の中に格納されているデータの中
で最長のデータとそれに対する相対位置のデータを符号
生成器8に入力する。符号生成器8は、相対位置のデー
タと部分データ列の長さLのデータとをコード化し、符
号出力線19を通して、そのコードを出力する(処理2
6)。
った場合は処理23を介して処理24に移行し、相対位
置・長さバッファ14の中に格納されているデータの中
で最長のデータとそれに対する相対位置のデータを符号
生成器8に入力する。符号生成器8は、相対位置のデー
タと部分データ列の長さLのデータとをコード化し、符
号出力線19を通して、そのコードを出力する(処理2
6)。
【0024】また、相対位置・長さバッファ14に格納
されている長さが全て0の場合、すなわち圧縮対象部分
データ列が見つからなかった場合は、処理23を介して
処理25に移行し、上記のランレングス圧縮を行う。
されている長さが全て0の場合、すなわち圧縮対象部分
データ列が見つからなかった場合は、処理23を介して
処理25に移行し、上記のランレングス圧縮を行う。
【0025】処理27及び処理28を介して上記操作を
2次元画像データの最終ラインまで繰り返し、データ圧
縮を行い符号化する。
2次元画像データの最終ラインまで繰り返し、データ圧
縮を行い符号化する。
【0026】次に、図4に示す8×8の画像データのデ
ータ圧縮過程を説明する。各データは4ビットで表現さ
れるものとする。以下では、便宜的に、画像データの座
標を(列,行)、符号化されたコードを、{相対位置,
長さ}あるいは[データの種類,長さ]で表すことにす
る。即ち、中括弧{ }で囲まれている部分は本発明に
よる圧縮がおこなわれている部分であり、鍵括弧[ ]
で囲まれている部分はランレングスによる圧縮が行われ
ている部分を示すことになる。
ータ圧縮過程を説明する。各データは4ビットで表現さ
れるものとする。以下では、便宜的に、画像データの座
標を(列,行)、符号化されたコードを、{相対位置,
長さ}あるいは[データの種類,長さ]で表すことにす
る。即ち、中括弧{ }で囲まれている部分は本発明に
よる圧縮がおこなわれている部分であり、鍵括弧[ ]
で囲まれている部分はランレングスによる圧縮が行われ
ている部分を示すことになる。
【0027】たとえば、相対位置が1、長さが3の符号
コードは{1,3}、データの種類が5、長さが2の符
号コードは[5,2]となる。また、注目データの座標
を(x, y)とすると、辞書参照範囲を相対位置で(x-1, y-
1)、(x, y-1)、(x+1, y-1)とする。先ず、図4(a)の
場合、0行目は参照する辞書が存在しないのでランレン
グス圧縮を行う。画像データ(0,0)から(3,0)
のデータは2で同じなので、符号は[2,4]となる。
(4,0)の3は1つだけなので符号は[3,1]とな
る。(5,0)から(7,0)のデータは4で同じなの
で符号は[4,3]となり、0行目の符号は、図5の0
行目に示すように、[2,4][3,1][4,3]と
なる。
コードは{1,3}、データの種類が5、長さが2の符
号コードは[5,2]となる。また、注目データの座標
を(x, y)とすると、辞書参照範囲を相対位置で(x-1, y-
1)、(x, y-1)、(x+1, y-1)とする。先ず、図4(a)の
場合、0行目は参照する辞書が存在しないのでランレン
グス圧縮を行う。画像データ(0,0)から(3,0)
のデータは2で同じなので、符号は[2,4]となる。
(4,0)の3は1つだけなので符号は[3,1]とな
る。(5,0)から(7,0)のデータは4で同じなの
で符号は[4,3]となり、0行目の符号は、図5の0
行目に示すように、[2,4][3,1][4,3]と
なる。
【0028】図4(a)の1行目の処理は、0行目を辞
書として扱う。(0,1)と(0,0)を比較し一致し
ないので、次に(0,1)と(1,0)と比較する。
(0,1)と(1,0)も一致しないので、画像データ
(0,1)を注目画素とする圧縮対象部分データ列はな
いと判断し、ランレングス圧縮を適用する。(0,1)
から(2,1) のデータは5で同じであるので符号は
[5,3]となる。(3,1)の4は(2,0)、
(3,0)、(4,0)と一致しないので、ランレング
ス圧縮を適用し、符号は[4,1]となる。(4,1)
の3は(3,0)、(4,0)、(5,0)の中の
(4,0)と一致し、(4,1)から(5,1)と辞書
の(4,0)から(5,0)が一致するので、符号は
{0,2}となる。(6,1)と(7,1)はそれぞれ
辞書のデータと一致しないので符号は、それぞれ[1,
1]、[3,1]となる。したがって、1行目の符号
は、図5の1行目に示すように、[5,3][4,1]
{0,2}[1,1][3,1]となる。
書として扱う。(0,1)と(0,0)を比較し一致し
ないので、次に(0,1)と(1,0)と比較する。
(0,1)と(1,0)も一致しないので、画像データ
(0,1)を注目画素とする圧縮対象部分データ列はな
いと判断し、ランレングス圧縮を適用する。(0,1)
から(2,1) のデータは5で同じであるので符号は
[5,3]となる。(3,1)の4は(2,0)、
(3,0)、(4,0)と一致しないので、ランレング
ス圧縮を適用し、符号は[4,1]となる。(4,1)
の3は(3,0)、(4,0)、(5,0)の中の
(4,0)と一致し、(4,1)から(5,1)と辞書
の(4,0)から(5,0)が一致するので、符号は
{0,2}となる。(6,1)と(7,1)はそれぞれ
辞書のデータと一致しないので符号は、それぞれ[1,
1]、[3,1]となる。したがって、1行目の符号
は、図5の1行目に示すように、[5,3][4,1]
{0,2}[1,1][3,1]となる。
【0029】図4(a)の2行目の処理は、1行目を辞
書として扱う。(0,2)は相対位置0の辞書(0,
1)と相対位置1の辞書(1,1)と一致する。相対位
置0の場合は一致する辞書の部分データ列の長さが
(0,1)から(1,1)と2であるが、相対位置1の
場合は一致する辞書の部分データ列の長さが(1,1)
から(5,1)と5であり、相対位置1の辞書の部分デ
ータ列の方が長いので、画素データ(0,2)を注目画
素とする圧縮対象部分データ列は相対位置1、長さ5と
なる。したがって符号は{1,5}となる。上記の処理
を最終行まで繰り返すと図4の画像データに対して図5
の符号列が得られる。
書として扱う。(0,2)は相対位置0の辞書(0,
1)と相対位置1の辞書(1,1)と一致する。相対位
置0の場合は一致する辞書の部分データ列の長さが
(0,1)から(1,1)と2であるが、相対位置1の
場合は一致する辞書の部分データ列の長さが(1,1)
から(5,1)と5であり、相対位置1の辞書の部分デ
ータ列の方が長いので、画素データ(0,2)を注目画
素とする圧縮対象部分データ列は相対位置1、長さ5と
なる。したがって符号は{1,5}となる。上記の処理
を最終行まで繰り返すと図4の画像データに対して図5
の符号列が得られる。
【0030】次に、図5の符号列を図6及び図7に示す
符号を用いて実際のコードに割り当ててみる。ランレン
グス圧縮の場合、符号は図6の61に示すように識別子
+データの種類+長さで構成される。ここで、識別子は
1ビット固定で表現することとし、ランレングス圧縮の
場合は0が割り当てられる。但し、1ライン目はランレ
ングス圧縮のみなので識別子は取り除く。データの種類
とは生データのことである。本実施例では1画素を4ビ
ット固定で表現している。長さは可変長符号で表現する
こととし、長さに応じて図8(A)に示すコードを割り
当てる。たとえば、図5に示す符号列の0行目の[2,
4]は000101110 となる。
符号を用いて実際のコードに割り当ててみる。ランレン
グス圧縮の場合、符号は図6の61に示すように識別子
+データの種類+長さで構成される。ここで、識別子は
1ビット固定で表現することとし、ランレングス圧縮の
場合は0が割り当てられる。但し、1ライン目はランレ
ングス圧縮のみなので識別子は取り除く。データの種類
とは生データのことである。本実施例では1画素を4ビ
ット固定で表現している。長さは可変長符号で表現する
こととし、長さに応じて図8(A)に示すコードを割り
当てる。たとえば、図5に示す符号列の0行目の[2,
4]は000101110 となる。
【0031】辞書圧縮の場合、符号は図6の62に示す
ように識別子+相対位置+長さで構成される。辞書圧縮
の場合、識別子は1が割り当てられる。相対位置は可変
長符号で表現する。同一ライン上において、前回行った
圧縮が処理25のランレングス圧縮によるものである場
合は、2次元画像データの一ラインの画素数をH(本実
施例ではH=8)、注目画素の現ラインの先頭画素から
の位置をx1 (本実施例では0≦x1 ≦7)、x1 =0
のときはS=0、x1 =1〜6のときはS=1、x1 =
7のときはS=2とし、Sの各値毎に、注目画素の相対
位置に応じて図7(A)に示すコードを割り当てる。た
とえば、図5に示す符号列の4行目の{−1,2}は直
前に行われた圧縮が処理25のランレングス圧縮なの
で、図7(A)に示すコードを割り当てる。図5に示す
符号列の4行目の{−1,2}は、x1 =2なのでS=
1となり、したがって相対位置−1の符号は11となる。
尚、Sの各値毎に、相対位置に応じて異なるコードを割
り当てたのは以下の理由による。原理的には、相対位置
に応じて異なるコードが割り当てられていれば、Sの各
値毎にコードを割り当てる必要はない。しかし、S=0
の場合、すなわち、注目画素が現ラインの先頭に位置す
る場合、圧縮対象部分データ列と一致する辞書上の部分
データ列(これを直前部分データ列と定義する)の先頭
画素が注目画素より左側に位置することはない。したが
って、本実施例では、S=0のときは相対位置が−1と
なることはないので、相対位置−1にコードを割り当て
る必要はない。また、S=2の場合、すなわち、注目画
素が現ラインの終端に位置する場合、直前部分データ列
の先頭画素が注目画素より右側に位置することはない。
したがって、本実施例では、S=2のときは相対位置が
1となることはないので、相対位置1にコードを割り当
てる必要はない。そこで、本発明では、Sの各値毎に相
対位置に応じて異なるコードを割り当てることにより、
注目画素が現ラインの先頭又は終端に位置する場合に、
相対位置の採り得る値外の値について符号が割り当てら
れるという無駄を省き、符号の冗長性を改善して圧縮率
を高めている。これにより、本実施例では、図7(A)
に示すように、S=0及びS=2のときは相対位置を1
ビットで表現することができた。
ように識別子+相対位置+長さで構成される。辞書圧縮
の場合、識別子は1が割り当てられる。相対位置は可変
長符号で表現する。同一ライン上において、前回行った
圧縮が処理25のランレングス圧縮によるものである場
合は、2次元画像データの一ラインの画素数をH(本実
施例ではH=8)、注目画素の現ラインの先頭画素から
の位置をx1 (本実施例では0≦x1 ≦7)、x1 =0
のときはS=0、x1 =1〜6のときはS=1、x1 =
7のときはS=2とし、Sの各値毎に、注目画素の相対
位置に応じて図7(A)に示すコードを割り当てる。た
とえば、図5に示す符号列の4行目の{−1,2}は直
前に行われた圧縮が処理25のランレングス圧縮なの
で、図7(A)に示すコードを割り当てる。図5に示す
符号列の4行目の{−1,2}は、x1 =2なのでS=
1となり、したがって相対位置−1の符号は11となる。
尚、Sの各値毎に、相対位置に応じて異なるコードを割
り当てたのは以下の理由による。原理的には、相対位置
に応じて異なるコードが割り当てられていれば、Sの各
値毎にコードを割り当てる必要はない。しかし、S=0
の場合、すなわち、注目画素が現ラインの先頭に位置す
る場合、圧縮対象部分データ列と一致する辞書上の部分
データ列(これを直前部分データ列と定義する)の先頭
画素が注目画素より左側に位置することはない。したが
って、本実施例では、S=0のときは相対位置が−1と
なることはないので、相対位置−1にコードを割り当て
る必要はない。また、S=2の場合、すなわち、注目画
素が現ラインの終端に位置する場合、直前部分データ列
の先頭画素が注目画素より右側に位置することはない。
したがって、本実施例では、S=2のときは相対位置が
1となることはないので、相対位置1にコードを割り当
てる必要はない。そこで、本発明では、Sの各値毎に相
対位置に応じて異なるコードを割り当てることにより、
注目画素が現ラインの先頭又は終端に位置する場合に、
相対位置の採り得る値外の値について符号が割り当てら
れるという無駄を省き、符号の冗長性を改善して圧縮率
を高めている。これにより、本実施例では、図7(A)
に示すように、S=0及びS=2のときは相対位置を1
ビットで表現することができた。
【0032】また、同一ライン上において、前回行った
圧縮が処理24の圧縮によるものである場合、すなわち
処理24の辞書圧縮が2回以上連続した場合は、前回出
力した圧縮データの相対位置をTとし、上記S及びTの
各値毎に、注目画素の相対位置に応じて図7(B)に示
すコードを割り当てる。たとえば、図5に示す符号列の
4行目の{0,4}は直前に行われた圧縮が処理24の
辞書圧縮なので、図7(B)に示すコードを割り当て
る。図5に示す符号列の4行目の{0,4}は、x1 =
4なのでS=1となり、また、直前に行われた処理24
の圧縮によるデータの相対位置が−1なのでT=−1と
なる。したがって相対位置0の符号は0 となる。本発明
では、現ラインから、注目画素を先頭画素とする長さが
1画素以上の部分データ列であって直前ラインのデータ
と最も長く一致する圧縮対象部分データ列を検出するこ
ととしているので、同一ライン上で処理24の辞書圧縮
が2回以上連続する場合、2回目以降の圧縮における相
対位置が直前に行われた圧縮における相対位置と一致す
ることはない。たとえば、直前に行われた圧縮の相対位
置が0の場合、今回行う圧縮の相対位置が0となること
はない。したがって、同一ライン上で処理24の辞書圧
縮が2回以上連続する場合、2回目以降の圧縮では直前
に行われた圧縮の相対位置と同じ相対位置にコードを割
り当てる必要はない。そこで、本発明では、同一ライン
上で処理24の辞書圧縮が2回以上連続する場合、2回
目以降の圧縮においては、直前に行われた圧縮の相対位
置をTとし、今回行う圧縮の相対位置を表すコードを上
記S及びTの各値毎に用意することにより、相対位置の
採り得る値外の値について符号が割り当てられるという
無駄を省き、更に符号の冗長性を改善し圧縮率を高めて
いる。これにより、本実施例では、図7(B)に示すよ
うに、相対位置を1ビットで表現することができた。さ
らに、S=2、T=−1のときは相対位置は必ず0にな
り、また、S=2、T=0のときは相対位置は必ず−1
になるので符号を割り当てる必要がなくなった。尚、図
7において、ハイフン「−」で示すものは可変長符号が
割り当てられていないことを示す。図7(B)におい
て、S=0のときに符号が割り当てられていないのは、
注目画素が現ラインの先頭に位置する場合、この注目画
素を先頭画素とする圧縮対象部分データ列は、同一ライ
ン上で行われる最初のデータ圧縮によるものだからであ
る。
圧縮が処理24の圧縮によるものである場合、すなわち
処理24の辞書圧縮が2回以上連続した場合は、前回出
力した圧縮データの相対位置をTとし、上記S及びTの
各値毎に、注目画素の相対位置に応じて図7(B)に示
すコードを割り当てる。たとえば、図5に示す符号列の
4行目の{0,4}は直前に行われた圧縮が処理24の
辞書圧縮なので、図7(B)に示すコードを割り当て
る。図5に示す符号列の4行目の{0,4}は、x1 =
4なのでS=1となり、また、直前に行われた処理24
の圧縮によるデータの相対位置が−1なのでT=−1と
なる。したがって相対位置0の符号は0 となる。本発明
では、現ラインから、注目画素を先頭画素とする長さが
1画素以上の部分データ列であって直前ラインのデータ
と最も長く一致する圧縮対象部分データ列を検出するこ
ととしているので、同一ライン上で処理24の辞書圧縮
が2回以上連続する場合、2回目以降の圧縮における相
対位置が直前に行われた圧縮における相対位置と一致す
ることはない。たとえば、直前に行われた圧縮の相対位
置が0の場合、今回行う圧縮の相対位置が0となること
はない。したがって、同一ライン上で処理24の辞書圧
縮が2回以上連続する場合、2回目以降の圧縮では直前
に行われた圧縮の相対位置と同じ相対位置にコードを割
り当てる必要はない。そこで、本発明では、同一ライン
上で処理24の辞書圧縮が2回以上連続する場合、2回
目以降の圧縮においては、直前に行われた圧縮の相対位
置をTとし、今回行う圧縮の相対位置を表すコードを上
記S及びTの各値毎に用意することにより、相対位置の
採り得る値外の値について符号が割り当てられるという
無駄を省き、更に符号の冗長性を改善し圧縮率を高めて
いる。これにより、本実施例では、図7(B)に示すよ
うに、相対位置を1ビットで表現することができた。さ
らに、S=2、T=−1のときは相対位置は必ず0にな
り、また、S=2、T=0のときは相対位置は必ず−1
になるので符号を割り当てる必要がなくなった。尚、図
7において、ハイフン「−」で示すものは可変長符号が
割り当てられていないことを示す。図7(B)におい
て、S=0のときに符号が割り当てられていないのは、
注目画素が現ラインの先頭に位置する場合、この注目画
素を先頭画素とする圧縮対象部分データ列は、同一ライ
ン上で行われる最初のデータ圧縮によるものだからであ
る。
【0033】長さも可変長符号で表現する。直前部分デ
ータ列の先頭画素についての直前ラインの先頭画素から
の位置をx2 (本実施例では0≦x2 ≦7)、x1 及び
x2のうち大きい方の値をU(U=MAX(x1 ,
x2 ))とし、Uの各値毎に、長さに応じて図8(B)
に示すコードを割り当てる。たとえば、図5に示す符号
列の4行目の{−1,2}はx1 =2であり、また相対
位置は−1なのでx2 =1である。したがって、U=x
1 =2であるので、長さ2の符号は図8(B)より10と
なる。また、図5に示す符号列の4行目の{0,4}
は、x1 =4であり、また相対位置は0なのでx2 =4
である。したがって、U=x1 =x2 =4であるので、
長さ4の符号は図8(B)より111 となる。
ータ列の先頭画素についての直前ラインの先頭画素から
の位置をx2 (本実施例では0≦x2 ≦7)、x1 及び
x2のうち大きい方の値をU(U=MAX(x1 ,
x2 ))とし、Uの各値毎に、長さに応じて図8(B)
に示すコードを割り当てる。たとえば、図5に示す符号
列の4行目の{−1,2}はx1 =2であり、また相対
位置は−1なのでx2 =1である。したがって、U=x
1 =2であるので、長さ2の符号は図8(B)より10と
なる。また、図5に示す符号列の4行目の{0,4}
は、x1 =4であり、また相対位置は0なのでx2 =4
である。したがって、U=x1 =x2 =4であるので、
長さ4の符号は図8(B)より111 となる。
【0034】辞書圧縮の場合において、長さに応じたコ
ードをUの各値毎に用意したのは以下の理由による。原
理的には、長さに応じて異なるコードが割り当てられて
いれば、Uの各値毎にコードを割り当てる必要はない。
しかし、圧縮対象部分データ列の長さ、すなわち、直前
部分データ列の長さの採り得る最大値は注目画素から現
ラインの終端に位置する画素までのドット長より大きく
なることはない。また、直前部分データ列の先頭画素か
ら直前ラインの終端に位置する画素までのドット長より
大きくなることもない。したがって長さの採り得る最大
値は、注目画素から現ラインの終端に位置する画素まで
のドット長及び直前部分データ列の先頭画素から直前ラ
インの終端に位置する画素までのドット長のうち短い方
の値となる。このため、本実施例では、x1 及びx2 の
うち値の大きい方をUとし、Uの各値毎に長さに応じて
異なるコードを割り当てることにより、長さの採り得る
範囲外の値についてコードが割り当てられるという無駄
を省き、符号の冗長性を改善して圧縮率を高めている。
尚、図8(B)において、ハイフン「−」で示すものは
可変長符号が割り当てられていないことを示す。U=7
のときに可変長符号が割り当てられていないのは、U=
7の場合、長さは必ず1となるからである。
ードをUの各値毎に用意したのは以下の理由による。原
理的には、長さに応じて異なるコードが割り当てられて
いれば、Uの各値毎にコードを割り当てる必要はない。
しかし、圧縮対象部分データ列の長さ、すなわち、直前
部分データ列の長さの採り得る最大値は注目画素から現
ラインの終端に位置する画素までのドット長より大きく
なることはない。また、直前部分データ列の先頭画素か
ら直前ラインの終端に位置する画素までのドット長より
大きくなることもない。したがって長さの採り得る最大
値は、注目画素から現ラインの終端に位置する画素まで
のドット長及び直前部分データ列の先頭画素から直前ラ
インの終端に位置する画素までのドット長のうち短い方
の値となる。このため、本実施例では、x1 及びx2 の
うち値の大きい方をUとし、Uの各値毎に長さに応じて
異なるコードを割り当てることにより、長さの採り得る
範囲外の値についてコードが割り当てられるという無駄
を省き、符号の冗長性を改善して圧縮率を高めている。
尚、図8(B)において、ハイフン「−」で示すものは
可変長符号が割り当てられていないことを示す。U=7
のときに可変長符号が割り当てられていないのは、U=
7の場合、長さは必ず1となるからである。
【0035】これにより、たとえば、図5に示す符号列
の4行目の{−1,2}は11110 となる。また、図5に
示す符号列の4行目の{0,4}は10111 となる。
の4行目の{−1,2}は11110 となる。また、図5に
示す符号列の4行目の{0,4}は10111 となる。
【0036】図5の符号列を実際の符号に変換した結果
が図9になり、図4の画像データの容量が256ビット
であるのに対し、図9のデータ容量は、160ビットで
あり、本発明のアルゴリズムを用いてもとの画像データ
の62.5%に圧縮できたことになる。
が図9になり、図4の画像データの容量が256ビット
であるのに対し、図9のデータ容量は、160ビットで
あり、本発明のアルゴリズムを用いてもとの画像データ
の62.5%に圧縮できたことになる。
【0037】次に、図10及び図11を用いて上記の手
法で圧縮した符号を伸長する手順を示す。図11は伸長
回路の構成例、図12はデータ伸長アルゴリズムのフロ
ーチャートである。図10において、29は入力バッフ
ァ、30は識別子バッファ、31はランレングスデコー
ダ、32は辞書デコーダ、33と34はセレクタ、35
は長さバッファ、36は比較器、37は長さカウンタ、
38は加算器、39は伸長バッファ、40はポインタ、
41は辞書ポインタ、42は辞書バッファ、43は入力
信号線、44は出力信号線である。
法で圧縮した符号を伸長する手順を示す。図11は伸長
回路の構成例、図12はデータ伸長アルゴリズムのフロ
ーチャートである。図10において、29は入力バッフ
ァ、30は識別子バッファ、31はランレングスデコー
ダ、32は辞書デコーダ、33と34はセレクタ、35
は長さバッファ、36は比較器、37は長さカウンタ、
38は加算器、39は伸長バッファ、40はポインタ、
41は辞書ポインタ、42は辞書バッファ、43は入力
信号線、44は出力信号線である。
【0038】次に、図11に示すフローに基づいて上記
のように構成された伸長回路の動作の概要を示す。先
ず、入力信号線43を通して入力バッファ29に圧縮さ
れたデータを取り込み、初めの1ビットを識別子バッフ
ァに格納し、処理45でポインタ40及び長さカウンタ
37を0に初期化する。処理46に移行し、識別子バッ
ファの内容が1 であるなら、後に続くデータは辞書圧縮
されたデータなので、辞書デコーダ32を通し、相対位
置と長さの情報とをデコードする。先ず、初めの1ビッ
トに続く2ビット目以降のビット列長から相対位置の情
報(−1か0か1)を抽出する。同一ライン上で前回伸
長したデータが辞書圧縮されたデータである場合、すな
わち、前回伸長したデータの初めの1ビットが1 である
場合、同一ライン上で辞書圧縮されたデータが2回以上
連続して入力されたことになるので、ポインタ40の指
す注目画素の現ライン上での位置x1 に基づいて上述し
たSの値を求める。そして、このSの値及び前回辞書デ
コーダ32でデコードした相対位置の情報Tの値に基づ
いて、図7(B)に示すテーブルから初めの1ビットに
続く2ビット目以降のビット列長に対応する相対位置の
情報を抽出する。同一ライン上で前回伸長したデータが
ランレングス圧縮されたデータである場合、すなわち、
前回伸長したデータの初めの1ビットが0 である場合、
または、今回伸長するデータが同一ライン上で最初のデ
ータである場合は、ポインタ40の指す注目画素の現ラ
イン上での位置x1 に基づいて上述したSの値を求め
る。そして、このSの値に基づいて図7(A)に示すテ
ーブルから初めの1ビットに続く2ビット目以降のビッ
ト列長に対応する相対位置の情報を抽出する。次に、デ
コードされた相対位置の情報(−1か0か1)とポイン
タ40の内容(注目画素の現ラインの先頭画素からの位
置x1 )を加算器38に入力して直前部分データ列の先
頭画素の直前ライン上での位置x2 を求め、この位置x
2 を辞書ポインタ41に格納する(処理47)。次に、
ポインタ40の指す注目画素の現ライン上での位置x1
及び加算器38で算出した直前部分データ列の先頭画素
の直前ライン上での位置x2 に基づき、前述したUの値
(U=MAX(x1 ,x2 ))を求める。そして、この
Uの値に基づき、相対位置を表すビット列長に続くビッ
ト列長から長さの情報を抽出し、長さバッファに格納す
る(処理48)。
のように構成された伸長回路の動作の概要を示す。先
ず、入力信号線43を通して入力バッファ29に圧縮さ
れたデータを取り込み、初めの1ビットを識別子バッフ
ァに格納し、処理45でポインタ40及び長さカウンタ
37を0に初期化する。処理46に移行し、識別子バッ
ファの内容が1 であるなら、後に続くデータは辞書圧縮
されたデータなので、辞書デコーダ32を通し、相対位
置と長さの情報とをデコードする。先ず、初めの1ビッ
トに続く2ビット目以降のビット列長から相対位置の情
報(−1か0か1)を抽出する。同一ライン上で前回伸
長したデータが辞書圧縮されたデータである場合、すな
わち、前回伸長したデータの初めの1ビットが1 である
場合、同一ライン上で辞書圧縮されたデータが2回以上
連続して入力されたことになるので、ポインタ40の指
す注目画素の現ライン上での位置x1 に基づいて上述し
たSの値を求める。そして、このSの値及び前回辞書デ
コーダ32でデコードした相対位置の情報Tの値に基づ
いて、図7(B)に示すテーブルから初めの1ビットに
続く2ビット目以降のビット列長に対応する相対位置の
情報を抽出する。同一ライン上で前回伸長したデータが
ランレングス圧縮されたデータである場合、すなわち、
前回伸長したデータの初めの1ビットが0 である場合、
または、今回伸長するデータが同一ライン上で最初のデ
ータである場合は、ポインタ40の指す注目画素の現ラ
イン上での位置x1 に基づいて上述したSの値を求め
る。そして、このSの値に基づいて図7(A)に示すテ
ーブルから初めの1ビットに続く2ビット目以降のビッ
ト列長に対応する相対位置の情報を抽出する。次に、デ
コードされた相対位置の情報(−1か0か1)とポイン
タ40の内容(注目画素の現ラインの先頭画素からの位
置x1 )を加算器38に入力して直前部分データ列の先
頭画素の直前ライン上での位置x2 を求め、この位置x
2 を辞書ポインタ41に格納する(処理47)。次に、
ポインタ40の指す注目画素の現ライン上での位置x1
及び加算器38で算出した直前部分データ列の先頭画素
の直前ライン上での位置x2 に基づき、前述したUの値
(U=MAX(x1 ,x2 ))を求める。そして、この
Uの値に基づき、相対位置を表すビット列長に続くビッ
ト列長から長さの情報を抽出し、長さバッファに格納す
る(処理48)。
【0039】処理49では、辞書ポインタ41の指す辞
書バッファ42のデータをポインタ40の指す伸長バッ
ファ39に格納する。次に、辞書ポインタ41及びポイ
ンタ40を1つ進め(処理50、53)、長さカウンタ
37をインクリメントし、長さカウンタ37の内容を長
さバッファ35の内容と比較器36を通して比較する
(処理54)。長さバッファの内容と長さカウンタの内
容が一致しないなら(処理55)、処理56を介して処
理49に移行し、一致するまで処理49、50、53、
54を順に繰り返し処理する。一致する場合は、長さカ
ウンタ37を0に初期化した後(処理57)、処理46
に移行し、新しい符号を伸長する。
書バッファ42のデータをポインタ40の指す伸長バッ
ファ39に格納する。次に、辞書ポインタ41及びポイ
ンタ40を1つ進め(処理50、53)、長さカウンタ
37をインクリメントし、長さカウンタ37の内容を長
さバッファ35の内容と比較器36を通して比較する
(処理54)。長さバッファの内容と長さカウンタの内
容が一致しないなら(処理55)、処理56を介して処
理49に移行し、一致するまで処理49、50、53、
54を順に繰り返し処理する。一致する場合は、長さカ
ウンタ37を0に初期化した後(処理57)、処理46
に移行し、新しい符号を伸長する。
【0040】処理46で識別子が0の場合は、後に続く
データはランレングス圧縮されたデータなので、ランレ
ングスデコーダ31を通し、生データと長さの情報とを
デコードする。先ず、初めの1ビットに続く2ビット目
から5ビット目までのビット列長から生データを抽出す
る。次に、6ビット目以降のビット列長から長さの情報
を抽出する。そして、デコードされた長さの情報を長さ
バッファ35に格納すると共に(処理51)、生データ
をポインタ40の指す伸長バッファ39に格納する(処
理52)。次に、ポインタ40を1つ進め(処理5
3)、長さカウンタ37をインクリメントし、長さカウ
ンタ37の内容を長さバッファ35の内容と比較器36
を通して比較する(処理54)。長さバッファの内容と
長さカウンタの内容が一致しないなら(処理55)、処
理56を介して処理52に移行し、一致するまで処理5
2、53、54を順に繰り返し処理する。一致する場合
は、長さカウンタ37を0に初期化した後(処理5
7)、処理46に移行し、新しい符号を伸長する。尚、
入力された圧縮データが1ライン目の場合、識別子は取
り除かれているが、データはランレングス圧縮されたデ
ータのみなので、処理46で識別子の判定をすることな
く処理51に移行する。
データはランレングス圧縮されたデータなので、ランレ
ングスデコーダ31を通し、生データと長さの情報とを
デコードする。先ず、初めの1ビットに続く2ビット目
から5ビット目までのビット列長から生データを抽出す
る。次に、6ビット目以降のビット列長から長さの情報
を抽出する。そして、デコードされた長さの情報を長さ
バッファ35に格納すると共に(処理51)、生データ
をポインタ40の指す伸長バッファ39に格納する(処
理52)。次に、ポインタ40を1つ進め(処理5
3)、長さカウンタ37をインクリメントし、長さカウ
ンタ37の内容を長さバッファ35の内容と比較器36
を通して比較する(処理54)。長さバッファの内容と
長さカウンタの内容が一致しないなら(処理55)、処
理56を介して処理52に移行し、一致するまで処理5
2、53、54を順に繰り返し処理する。一致する場合
は、長さカウンタ37を0に初期化した後(処理5
7)、処理46に移行し、新しい符号を伸長する。尚、
入力された圧縮データが1ライン目の場合、識別子は取
り除かれているが、データはランレングス圧縮されたデ
ータのみなので、処理46で識別子の判定をすることな
く処理51に移行する。
【0041】上記の処理を最後の符号まで繰り返して行
い、伸長バッファ39に格納したデータが画像データ1
ライン分に達したら、辞書バッファ42に伸長バッファ
39の内容をすべて複写し、辞書バッファの内容、つま
り復元されたデータを出力信号線44を通して出力す
る。そして、再び処理46に戻り、次のラインの伸長を
行う。
い、伸長バッファ39に格納したデータが画像データ1
ライン分に達したら、辞書バッファ42に伸長バッファ
39の内容をすべて複写し、辞書バッファの内容、つま
り復元されたデータを出力信号線44を通して出力す
る。そして、再び処理46に戻り、次のラインの伸長を
行う。
【0042】
【発明の効果】以上詳細に説明したように、本発明によ
れば、辞書の容量は直前ラインのみを格納すれば良いの
で非常に小さく、また、類似度の高い範囲内で辞書を参
照すると共にできるだけ長い部分データ列を参照するの
で、圧縮率が高く且つ圧縮・伸長を高速に処理すること
が可能である。さらに、同一ライン上で圧縮対象部分デ
ータ列を2回以上連続して検出した場合に、2回目以降
に検出した圧縮対象部分データ列の圧縮データとして出
力する相対位置に応じたコードに、Tの各値毎に相対位
置に応じて異なるものを割り当てることにより、相対位
置を表す符号の冗長性を改善し、圧縮率を高めることが
できる。また、画像データの1ライン目や辞書参照が不
可能な部分データ列にランレングス圧縮などを適用する
ことで、更に、高い圧縮率が得られる。
れば、辞書の容量は直前ラインのみを格納すれば良いの
で非常に小さく、また、類似度の高い範囲内で辞書を参
照すると共にできるだけ長い部分データ列を参照するの
で、圧縮率が高く且つ圧縮・伸長を高速に処理すること
が可能である。さらに、同一ライン上で圧縮対象部分デ
ータ列を2回以上連続して検出した場合に、2回目以降
に検出した圧縮対象部分データ列の圧縮データとして出
力する相対位置に応じたコードに、Tの各値毎に相対位
置に応じて異なるものを割り当てることにより、相対位
置を表す符号の冗長性を改善し、圧縮率を高めることが
できる。また、画像データの1ライン目や辞書参照が不
可能な部分データ列にランレングス圧縮などを適用する
ことで、更に、高い圧縮率が得られる。
【図1】2次元画像データを説明するための図である。
【図2】データ圧縮回路の構成例を示す図である。
【図3】データ圧縮の動作の流れを説明するための図で
ある。
ある。
【図4】圧縮前の画像データを説明するための図であ
る。
る。
【図5】圧縮後の画像データを説明するための図であ
る。
る。
【図6】実際の符号の構成を説明するための図である。
【図7】相対位置の符号のテーブルを示す図である。
【図8】長さの符号のテーブルを示す図である。
【図9】実際の符号を割り当てた圧縮後の画像データを
説明するための図である。
説明するための図である。
【図10】データ伸長回路の構成例を示す図である。
【図11】データ伸長の動作の流れを説明するための図
である。
である。
1 辞書 2 圧縮対象部分データ列 3 辞書上の部分データ列 4 相対位置 17 ラインバッファ入力信号線 18 辞書バッファ入力信号線 19 符号出力信号線 43 入力信号線 44 出力信号線
Claims (18)
- 【請求項1】 順次スキャンされる2次元画像データに
対して直前ラインのデータを参照し、現ラインから、注
目画素を先頭画素とする長さが1画素以上の部分データ
列であって直前ラインのデータと最も長く一致する圧縮
対象部分データ列を検出した場合に、前記圧縮対象部分
データ列の圧縮データとして、前記注目画素と直前ライ
ン上の前記圧縮対象部分データ列に対応する直前部分デ
ータ列の先頭画素との相対位置に応じて異なるコードを
出力すると共に、前記直前部分データ列の長さに応じて
異なるコードを出力するデータ圧縮方式であって、 同一ライン上で前記圧縮対象部分データ列を2回以上連
続して検出した場合に、2回目以降に検出した圧縮対象
部分データ列の圧縮データとして出力する前記相対位置
に応じたコードに、前回出力した圧縮データの相対位置
をTとし、前記Tの各値毎に注目画素と直前部分データ
列の先頭画素との相対位置に応じて異なるものを割り当
てたことを特徴とするデータ圧縮方式。 - 【請求項2】 順次スキャンされる2次元画像データに
対して直前ラインのデータを参照し、現ラインから、注
目画素を先頭画素とする長さが1画素以上の部分データ
列であって直前ラインのデータと最も長く一致する圧縮
対象部分データ列を検出した場合に、前記圧縮対象部分
データ列の圧縮データとして、2次元画像データの1ラ
インの画素数をH、注目画素の現ラインの先頭画素から
の位置をx(0≦x≦H−1)、x=0のときはS=
0、1≦x≦H−2のときはS=1、x=H−1のとき
はS=2とし、前記Sの各値毎に前記注目画素と直前ラ
イン上の前記圧縮対象部分データ列に対応する直前部分
データ列の先頭画素との相対位置に応じて異なるコード
を出力すると共に、前記直前部分データ列の長さに応じ
て異なるコードを出力することを特徴とするデータ圧縮
方式。 - 【請求項3】 請求項2において、同一ライン上で前記
圧縮対象部分データ列を2回以上連続して検出した場合
に、2回目以降に検出した圧縮対象部分データ列の圧縮
データとして出力する前記相対位置に応じたコードに、
前回出力した圧縮データの相対位置の値をTとし、前記
T及び前記Sの各値毎に、注目画素と直前部分データ列
の先頭画素との相対位置に応じて異なるものを割り当て
たことを特徴とするデータ圧縮方式。 - 【請求項4】 請求項1,2又は3において、直前ライ
ンの参照範囲は、前記相対位置が同一画素位置の場合、
一画素ずれた位置の場合に制限されていること特徴とす
るデータ圧縮方式。 - 【請求項5】 順次スキャンされる2次元画像データに
対して直前ラインのデータを参照し、現ラインから、注
目画素を先頭画素とする長さが1画素以上の部分データ
列であって直前ラインのデータと最も長く一致する圧縮
対象部分データ列を検出した場合に、前記圧縮対象部分
データ列の圧縮データとして、前記注目画素と直前ライ
ン上の前記圧縮対象部分データ列に対応する直前部分デ
ータ列の先頭画素との相対位置に応じて異なるコード
と、前記直前部分データ列の長さに応じて異なるコード
が順次入力されると共に、同一ライン上で前記圧縮対象
部分データ列を2回以上連続して検出した場合に、2回
目以降に検出した圧縮対象部分データ列の圧縮データと
して入力される前記相対位置に応じたコードに、前回入
力された圧縮データの相対位置の値をTとし、前記Tの
各値毎に注目画素と直前部分データ列の先頭画素との相
対位置に応じて異なるものが割り当てられている2次元
画像圧縮データの伸長方式であって、 少なくとも直前ラインの伸長されたデータを保持し、 入力された圧縮データから前記相対位置と前記直前部分
データ列の長さに関する情報を抽出し、また、入力され
た圧縮データが前記2回目以降に検出した圧縮対象部分
データ列の圧縮データのときは、前記相対位置に関する
情報を前記Tの値に基づいて抽出し、 抽出された前記相対位置と前記直前部分データ列の長さ
に関する情報に基づいて、保持された直前ラインの伸長
されたデータから前記直前部分データ列を抽出し、入力
された圧縮データの伸長データとして出力することを特
徴とするデータ伸長方式。 - 【請求項6】 順次スキャンされる2次元画像データに
対して直前ラインのデータを参照し、現ラインから、注
目画素を先頭画素とする長さが1画素以上の部分データ
列であって直前ラインのデータと最も長く一致する圧縮
対象部分データ列を検出した場合に、前記圧縮対象部分
データ列の圧縮データとして、2次元画像データの1ラ
インの画素数をH、注目画素の現ラインの先頭画素から
の位置をx(0≦x≦H−1)、x=0のときはS=
0、1≦x≦H−2のときはS=1、x=H−1のとき
はS=2とし、前記Sの各値毎に前記注目画素と直前ラ
イン上の前記圧縮対象部分データ列に対応する直前部分
データ列の先頭画素との相対位置に応じて異なるコード
と、前記直前部分データ列の長さに応じて異なるコード
が順次入力される2次元画像圧縮データの伸長方式であ
って、 少なくとも直前ラインの伸長されたデータを保持し、 現ラインでの伸長しようとする注目画素の位置xに基づ
き前記Sの値を求め、入力された圧縮データから、前記
Sの値に基づいて前記相対位置に関する情報を抽出する
と共に前記直前部分データ列の長さに関する情報を抽出
し、 抽出された前記相対位置と前記直前部分データ列の長さ
に関する情報に基づいて、保持された直前ラインの伸長
されたデータから前記直前部分データ列を抽出し、入力
された圧縮データの伸長データとして出力することを特
徴とするデータ伸長方式。 - 【請求項7】 請求項6において、同一ライン上で前記
圧縮対象部分データ列を2回以上連続して検出した場合
に、2回目以降に検出した圧縮対象部分データ列の圧縮
データとして入力される前記相対位置に応じたコード
に、前回入力された圧縮データの相対位置をTとし、前
記T及び前記Sの各値毎に注目画素と直前部分データ列
の先頭画素との相対位置に応じて異なるものが割り当て
られている2次元画像圧縮データの伸長方式であって、 入力された圧縮データが前記2回目以降に検出した圧縮
対象部分データ列の圧縮データときは、前記相対位置に
関する情報を前記T及び前記Sの値に基づいて抽出する
ことを特徴とするデータ伸長方式。 - 【請求項8】 送信側において、順次スキャンされる2
次元画像データに対して直前ラインのデータを参照し、
現ラインから、注目画素を先頭画素とする長さが1画素
以上の部分データ列であって直前ラインのデータと最も
長く一致する圧縮対象部分データ列を検出した場合に、
前記圧縮対象部分データ列の圧縮データとして、前記注
目画素と直前ライン上の前記圧縮対象部分データ列に対
応する直前部分データ列の先頭画素との相対位置に応じ
て異なるコードと、前記直前部分データ列の長さに応じ
て異なるコードを出力すると共に、同一ライン上で前記
圧縮対象部分データ列を2回以上連続して検出した場合
に、2回目以降に検出した圧縮対象部分データ列の圧縮
データとして出力する前記相対位置に応じたコードに、
前回出力した圧縮データの相対位置をTとし、前記Tの
各値毎に注目画素と直前部分データ列の先頭画素との相
対位置に応じて異なるものを割り当て、 受信側において、少なくとも直前ラインの伸長されたデ
ータを保持し、入力された圧縮データから前記相対位置
と前記直前部分データ列の長さに関する情報を抽出し、
また、入力された圧縮データが前記2回目以降に検出し
た圧縮対象部分データ列の圧縮データのときは、前記T
の値に基づいて前記相対位置に関する情報を抽出し、抽
出された前記相対位置と前記直前部分データ列の長さに
関する情報に基づいて、保持された直前ラインの伸長さ
れたデータから前記直前部分データ列を抽出し、入力さ
れた圧縮データの伸長データとして出力することを特徴
とするデータ圧縮・伸長方式。 - 【請求項9】 送信側において、順次スキャンされる2
次元画像データに対して直前ラインのデータを参照し、
現ラインから、注目画素を先頭画素とする長さが1画素
以上の部分データ列であって直前ラインのデータと最も
長く一致する圧縮対象部分データ列を検出した場合に、
前記圧縮対象部分データ列の圧縮データとして、2次元
画像データの1ラインの画素数をH、注目画素の現ライ
ンの先頭画素からの位置をx(0≦x≦H−1)、x=
0のときはS=0、1≦x≦H−2のときはS=1、x
=H−1のときはS=2とし、前記Sの各値毎に前記注
目画素と直前ライン上の前記圧縮対象部分データ列に対
応する直前部分データ列の先頭画素との相対位置に応じ
て異なるコードと、前記直前部分データ列の長さに応じ
て異なるコードを出力し、 受信側において、少なくとも直前ラインの伸長されたデ
ータを保持し、現ラインでの伸長しようとする注目画素
の位置xに基づき前記Sの値を求め、入力された圧縮デ
ータから、前記Sの値に基づいて前記相対位置に関する
情報を抽出すると共に前記直前部分データ列の長さに関
する情報を抽出し、抽出された前記相対位置と前記直前
部分データ列の長さに関する情報に基づいて、保持され
た直前ラインの伸長されたデータから前記直前部分デー
タ列を抽出し、入力された圧縮データの伸長データとし
て出力することを特徴とするデータ圧縮・伸長方式。 - 【請求項10】 送信側において、順次スキャンされる
2次元画像データに対して直前ラインのデータを参照
し、現ラインから、注目画素を先頭画素とする長さが1
画素以上の部分データ列であって直前ライン上の部分デ
ータ列と最も長く一致する圧縮対象部分データ列を検出
した場合に、前記圧縮対象部分データ列の圧縮データと
して、2次元画像データの1ラインの画素数をH、注目
画素の現ラインの先頭画素からの位置をx(0≦x≦H
−1)、x=0のときはS=0、1≦x≦H−2のとき
はS=1、x=H−1のときはS=2とし、前記Sの各
値毎に前記注目画素と直前ライン上の前記圧縮対象部分
データ列に対応する直前部分データ列の先頭画素との相
対位置に応じて異なるコードと、前記直前部分データ列
の長さに応じて異なるコードを出力すると共に、同一ラ
イン上で前記圧縮対象部分データ列を2回以上連続して
検出した場合に、2回目以降に検出した圧縮対象部分デ
ータ列の圧縮データとして出力する前記相対位置に応じ
たコードに、前回出力した圧縮データの相対位置をTと
し、前記T及び前記Sの各値毎に注目画素と直前部分デ
ータ列の先頭画素との相対位置に応じて異なるものを割
り当て、 受信側において、少なくとも直前ラインの伸長されたデ
ータを保持し、現ラインでの伸長しようとする注目画素
の位置xに基づき前記Sの値を求め、入力された圧縮デ
ータから、前記Sの値に基づいて前記相対位置に関する
情報を抽出すると共に前記直前部分データ列の長さに関
する情報を抽出し、また、入力された圧縮データが前記
2回目以降に検出した圧縮対象部分データ列の圧縮デー
タのときは、前記T及び前記Sの値に基づいて前記相対
位置に関する情報を抽出し、抽出された前記相対位置と
前記直前部分データ列の長さに関する情報に基づいて、
保持された直前ラインの伸長されたデータから前記直前
部分データ列を抽出し、入力された圧縮データの伸長デ
ータとして出力することを特徴とするデータ圧縮・伸長
方式。 - 【請求項11】 順次入力される2次元画像データに対
して1ライン前のデータを保持する参照メモリ手段と、 入力された現ラインの信号から注目画素を先頭画素とす
る長さが1画素以上の複数の部分データ列を抽出して記
憶するバッファ手段と、 前記バッファ手段に記憶された前記部分データ列のうち
前記参照メモリ手段に記憶されたデータと最も長く一致
する部分データ列である圧縮対象部分データ列を検出す
る走査比較手段と、 前記走査比較手段が前記圧縮対象部分データ列を検出し
た場合に、前記圧縮対象部分データ列の圧縮データとし
て、前記注目画素と前記参照メモリ手段に記憶されたデ
ータ上の前記圧縮対象部分データ列に対応する直前部分
データ列の先頭画素との相対位置に応じて異なるコード
と、前記直前部分データ列の長さに応じて異なるコード
を出力すると共に、前記走査比較手段が同一ライン上で
前記圧縮対象部分データ列を2回以上連続して検出した
場合に、2回目以降に検出した圧縮対象部分データ列の
圧縮データとして出力する前記相対位置に応じたコード
に、前回出力した圧縮データの相対位置をTとし、前記
Tの各値毎に注目画素と直前部分データ列の先頭画素と
の相対位置に応じて異なるものを割り当てる符号生成手
段と、 を備えたことを特徴とするデータ圧縮装置。 - 【請求項12】 順次入力される2次元画像データに対
して1ライン前のデータを保持する参照メモリ手段と、 入力された現ラインの信号から注目画素を先頭画素とす
る長さが1画素以上の複数の部分データ列を抽出して記
憶するバッファ手段と、 前記バッファ手段に記憶された前記部分データ列のうち
前記参照メモリ手段に記憶されたデータと最も長く一致
する圧縮対象部分データ列を検出する走査比較手段と、 前記走査比較手段が前記圧縮対象部分データ列を検出し
た場合に、前記圧縮対象部分データ列の圧縮データとし
て、2次元画像データの1ラインの画素数をH、注目画
素の現ラインの先頭画素からの位置をx(0≦x≦H−
1)、x=0のときはS=0、1≦x≦H−2のときは
S=1、x=H−1のときはS=2とし、前記Sの各値
毎に前記注目画素と前記参照メモリ手段に記憶されたデ
ータ上の前記圧縮対象部分データ列に対応する直前部分
データ列の先頭画素との相対位置に応じて異なるコード
と、前記直前部分データ列の長さに応じて異なるコード
を出力する符号生成手段と、 を備えたことを特徴とするデータ圧縮装置。 - 【請求項13】 順次入力される2次元画像データに対
して1ライン前のデータを保持する参照メモリ手段と、 入力された現ラインの信号から注目画素を先頭画素とす
る長さが1画素以上の複数の部分データ列を抽出して記
憶するバッファ手段と、 前記バッファ手段に記憶された前記部分データ列のうち
前記参照メモリ手段に記憶されたデータと最も長く一致
する圧縮対象部分データ列を検出する走査比較手段と、 前記走査比較手段が前記圧縮対象部分データ列を検出し
た場合に、前記圧縮対象部分データ列の圧縮データとし
て、2次元画像データの1ラインの画素数をH、注目画
素の現ラインの先頭画素からの位置をx(0≦x≦H−
1)、x=0のときはS=0、1≦x≦H−2のときは
S=1、x=H−1のときはS=2とし、前記Sの各値
毎に前記注目画素と前記参照メモリ手段に記憶されたデ
ータ上の前記圧縮対象部分データ列に対応する直前部分
データ列の先頭画素との相対位置に応じて異なるコード
と、前記直前部分データ列の長さに応じて異なるコード
を出力すると共に、前記走査比較手段が同一ライン上で
前記圧縮対象部分データ列を2回以上連続して検出した
場合に、2回目以降に検出した圧縮対象部分データ列の
圧縮データとして出力する前記相対位置に応じたコード
に、前回出力した圧縮データの相対位置をTとし、前記
Sの各値及び前記Tの各値毎に注目画素と直前部分デー
タ列の先頭画素との相対位置に応じて異なるものを割り
当てる符号生成手段と、 を備えたことを特徴とするデータ圧縮装置。 - 【請求項14】 請求項11乃至13において、前記バ
ッファ手段は、前記走査比較手段が前記参照メモリ手段
に記憶されたデータから前記バッファ手段に記憶された
部分データ列と一致する部分データ列を検出した場合
に、現ラインの信号から前記バッファ手段に記憶された
前記部分データ列に続くデータを抽出して前記バッファ
手段に記憶する部分データ列の長さを順次増加させ、こ
れを前記走査比較手段が一致する部分データ列を検出し
なくなるまで繰り返し、 前記走査比較手段は、一致する部分データ列を検出しな
くなる直前に前記バッファ手段に記憶された部分データ
列を前記圧縮対象部分データ列として検出することを特
徴とするデータ圧縮装置。 - 【請求項15】 請求項11乃至14において、前記走
査比較手段は、前記参照メモリ手段に記憶されたデータ
から前記相対位置が同一画素位置又は一画素ずれた位置
にあるデータを先頭画素とする部分データ列を抽出して
比較を行うことを特徴とするデータ圧縮装置。 - 【請求項16】 順次スキャンされる2次元画像データ
に対して直前ラインのデータを参照し、現ラインから、
注目画素を先頭画素とする長さが1画素以上の部分デー
タ列であって直前ラインのデータと最も長く一致する圧
縮対象部分データ列を検出した場合に、前記圧縮対象部
分データ列の圧縮データとして、前記注目画素と直前ラ
イン上の前記圧縮対象部分データ列に対応する直前部分
データ列の先頭画素との相対位置に応じて異なるコード
と、前記直前部分データ列の長さに応じて異なるコード
が順次入力されると共に、同一ライン上で前記圧縮対象
部分データ列を2回以上連続して検出した場合に、2回
目以降に検出した圧縮対象部分データ列の圧縮データと
して入力される前記相対位置に応じたコードに、前回入
力された圧縮データの相対位置の値をTとし、前記Tの
各値毎に注目画素と直前部分データ列の先頭画素との相
対位置に応じて異なるものが割り当てられている2次元
画像圧縮データの伸長装置であって、 少なくとも直前ラインの伸長されたデータを保持するバ
ッファメモリ手段と、 入力された圧縮データから前記相対位置と前記直前部分
データ列の長さに関する情報を抽出し、また、入力され
た圧縮データが前記2回目以降に検出した圧縮対象部分
データ列の圧縮データのときは、前記Tの値に基づいて
前記相対位置に関する情報を抽出する抽出手段と、 前記抽出手段により抽出された前記相対位置と前記直前
部分データ列の長さに関する情報に基づいて、前記バッ
ファメモリ手段に保持された直前ラインの伸長されたデ
ータから前記直前部分データ列を抽出し、入力された圧
縮データの伸長データとして出力する復号手段と、 を備えたことを特徴とするデータ伸長装置。 - 【請求項17】 順次スキャンされる2次元画像データ
に対して直前ラインのデータを参照し、現ラインから、
注目画素を先頭画素とする長さが1画素以上の部分デー
タ列であって直前ラインのデータと最も長く一致する圧
縮対象部分データ列を検出した場合に、前記圧縮対象部
分データ列の圧縮データとして、2次元画像データの1
ラインの画素数をH、注目画素の現ラインの先頭画素か
らの位置をx(0≦x≦H−1)、x=0のときはS=
0、1≦x≦H−2のときはS=1、x=H−1のとき
はS=2とし、前記Sの各値毎に前記注目画素と直前ラ
イン上の前記圧縮対象部分データ列に対応する直前部分
データ列の先頭画素との相対位置に応じて異なるコード
と、前記直前部分データ列の長さに応じて異なるコード
が順次入力される2次元画像圧縮データの伸長装置であ
って、 少なくとも直前ラインの伸長されたデータを保持するバ
ッファメモリ手段と、 現ラインでの伸長しようとする注目画素の位置xに基づ
き前記Sの値を求め、入力された圧縮データから、前記
Sの値に基づいて前記相対位置に関する情報を抽出する
と共に前記直前部分データ列の長さに関する情報を抽出
する抽出手段と、 前記抽出手段により抽出された前記相対位置と前記直前
部分データ列の長さに関する情報に基づいて、前記バッ
ファメモリ手段に保持された直前ラインの伸長されたデ
ータから前記直前部分データ列を抽出し、入力された圧
縮データの伸長データとして出力する複合手段と、 を備えたことを特徴とするデータ伸長装置。 - 【請求項18】 請求項17において、同一ライン上で
前記圧縮対象部分データ列を2回以上連続して検出した
場合に、2回目以降に検出した圧縮対象部分データ列の
圧縮データとして入力される前記相対位置に応じたコー
ドに、前回入力された圧縮データの相対位置をTとし、
前記T及び前記Sの各値毎に注目画素と直前部分データ
列の先頭画素との相対位置に応じて異なるものが割り当
てられている2次元画像圧縮データの伸長装置であっ
て、 前記抽出手段は、入力された圧縮データが前記2回目以
降に検出した圧縮対象部分データ列の圧縮データとき
に、前記相対位置に関する情報を前記T及び前記Sの値
に基づいて抽出することを特徴とするデータ伸長装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28911094A JPH08130652A (ja) | 1994-10-28 | 1994-10-28 | 2次元画像データの圧縮方式および伸長方式 |
| US08/526,663 US5883975A (en) | 1994-09-12 | 1995-09-11 | Compression and decompression methods on two-dimensional image data |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28911094A JPH08130652A (ja) | 1994-10-28 | 1994-10-28 | 2次元画像データの圧縮方式および伸長方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08130652A true JPH08130652A (ja) | 1996-05-21 |
Family
ID=17738922
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP28911094A Pending JPH08130652A (ja) | 1994-09-12 | 1994-10-28 | 2次元画像データの圧縮方式および伸長方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH08130652A (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0810552A3 (en) * | 1996-05-28 | 1999-06-16 | Sharp Kabushiki Kaisha | Image display device |
| JPH11168389A (ja) * | 1997-12-05 | 1999-06-22 | Toshiba Corp | データ圧縮装置 |
| JP2005006353A (ja) * | 2004-08-18 | 2005-01-06 | Sharp Corp | 画像符号化装置、画像符号化方法および画像符号化方法のプログラムを記録したコンピュータ読取可能な記録媒体、ならびに画像復号方法および画像復号方法のプログラムを記録したコンピュータ読取可能な記録媒体 |
| US7245396B2 (en) | 2001-12-06 | 2007-07-17 | Canon Kabushiki Kaisha | Image data coding apparatus, image data decoding apparatus, image data coding method and image data decoding method |
| CN1329991C (zh) * | 2002-02-21 | 2007-08-01 | 株式会社半导体能源研究所 | 半导体器件及其制造方法 |
| JP2010278567A (ja) * | 2009-05-26 | 2010-12-09 | Yamaha Corp | 復号装置 |
| JP2013026661A (ja) * | 2011-07-15 | 2013-02-04 | Axell Corp | 画像データ符号化方法 |
-
1994
- 1994-10-28 JP JP28911094A patent/JPH08130652A/ja active Pending
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0810552A3 (en) * | 1996-05-28 | 1999-06-16 | Sharp Kabushiki Kaisha | Image display device |
| JPH11168389A (ja) * | 1997-12-05 | 1999-06-22 | Toshiba Corp | データ圧縮装置 |
| US6268809B1 (en) | 1997-12-05 | 2001-07-31 | Kabushiki Kaisha Toshiba | Data compression method for efficiently compressing data based on data periodicity |
| WO2004084415A1 (ja) * | 1997-12-05 | 2004-09-30 | Akira Saito | データの周期性に着目して効率的に圧縮するデータ圧縮方法 |
| US7245396B2 (en) | 2001-12-06 | 2007-07-17 | Canon Kabushiki Kaisha | Image data coding apparatus, image data decoding apparatus, image data coding method and image data decoding method |
| CN1329991C (zh) * | 2002-02-21 | 2007-08-01 | 株式会社半导体能源研究所 | 半导体器件及其制造方法 |
| JP2005006353A (ja) * | 2004-08-18 | 2005-01-06 | Sharp Corp | 画像符号化装置、画像符号化方法および画像符号化方法のプログラムを記録したコンピュータ読取可能な記録媒体、ならびに画像復号方法および画像復号方法のプログラムを記録したコンピュータ読取可能な記録媒体 |
| JP2010278567A (ja) * | 2009-05-26 | 2010-12-09 | Yamaha Corp | 復号装置 |
| JP2013026661A (ja) * | 2011-07-15 | 2013-02-04 | Axell Corp | 画像データ符号化方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5883975A (en) | Compression and decompression methods on two-dimensional image data | |
| KR100214055B1 (ko) | 색인된 칼라 이미지 데이타를 위한 데이타 압축장치 및 방법 | |
| US6363176B1 (en) | Picture data decompression apparatus | |
| US6327383B2 (en) | Multi-color image encoding apparatus and method, multi-color image decoding apparatus and method | |
| US6798914B1 (en) | Neural-network-based method of image compression | |
| US20020085227A1 (en) | Data compression and reconstruction methods and apparatuses for hard copy device | |
| JPH08130652A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
| JPH07336696A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
| JPH0884260A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
| JPH08130651A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
| JP3213012B2 (ja) | 画像データのコード化及び復号化方法 | |
| JPH0846793A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
| JPS6118387B2 (ja) | ||
| JPH0723238A (ja) | 画像データ圧縮及び復元装置 | |
| US6219445B1 (en) | Multi-color image encoding and/or decoding apparatus containing color order table and the method thereof | |
| JP3559419B2 (ja) | 画像圧縮データの伸張方法及び装置 | |
| JP3260925B2 (ja) | 画像処理装置 | |
| JPH1117959A (ja) | 2値画像のランレングス符号化方法およびランレングス符号化プログラムを記録した記録媒体 | |
| JP2003189108A (ja) | 画像圧縮方法 | |
| JPH06152988A (ja) | 可変長符号の復号化装置 | |
| JPH0936749A (ja) | 符号化復号化装置およびこれに用いられる符号化方法 | |
| CN117333559A (zh) | 图像压缩方法、装置、电子设备及存储介质 | |
| JP3276037B2 (ja) | 符号化装置 | |
| JPH08162973A (ja) | データ処理方法および装置、ならびにこのデータ処理装置を用いた情報システム | |
| JP2881039B2 (ja) | データ圧縮装置 |