JP3128014B2 - 画像圧縮伸張装置 - Google Patents

画像圧縮伸張装置

Info

Publication number
JP3128014B2
JP3128014B2 JP04071336A JP7133692A JP3128014B2 JP 3128014 B2 JP3128014 B2 JP 3128014B2 JP 04071336 A JP04071336 A JP 04071336A JP 7133692 A JP7133692 A JP 7133692A JP 3128014 B2 JP3128014 B2 JP 3128014B2
Authority
JP
Japan
Prior art keywords
code
data
bit
nibble
predictor
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
JP04071336A
Other languages
English (en)
Other versions
JPH05276390A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP04071336A priority Critical patent/JP3128014B2/ja
Publication of JPH05276390A publication Critical patent/JPH05276390A/ja
Application granted granted Critical
Publication of JP3128014B2 publication Critical patent/JP3128014B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、多階調の画像データを
高速に圧縮もしくは伸張処理する画像圧縮伸張装置に関
する。
【0002】
【従来の技術】ディジタル画像データを扱う装置では、
符号化装置を利用して画像信号の冗長度を抑圧する画像
圧縮が一般的に行われている。こうした画像圧縮技術と
してよく知られたものに、テキスト原稿を二値化処理し
た画像データを圧縮処理するCCITT勧告T.4で規
格化されたMH/MR符号化方式のようなランレングス
符号化方式、8ビットの自然画像データを圧縮処理する
CCITT勧告H.261で規格化されたADCT符号
化方式のような変換符号化方式がある。こうしたディジ
タル画像データを記憶保持するファイリングシステムで
は、さまざまな画像データを扱う必要がある。ところ
が、二値画像データと多値画像データでは画像データの
冗長性が異なっていることから、それらを共に効率的に
圧縮する技術がない。そこで従来では、特開平2−11
2074号公報に見られるように、異なった符号化方式
の画像圧縮装置を複数備え、入力された画像データの種
類に応じて最適な画像圧縮装置を選択するといったこと
が行われている。一方、ディジタル画像データの中に
は、スキャナなどで読み取った8ビットの自然画像デー
タを画像処理装置を通して2〜7ビットへビット数を落
とした多階調画像データもある。このような多階調画像
データを圧縮するには、階調数が多ければADCT符号
化方式を応用すればよい。しかし、ADCT変換符号化
方式は非可逆符号化方式なので、階調数が少なくなって
くると情報量が失われることになる。そこで、低ビット
レートの多階調画像データを符号化するのに有効な手法
として、特開昭60−24776号公報に開示されてい
る技術がある。これは、多階調画像データを予測処理
し、得られた予測誤差データをビットプレーン単位で平
滑化した上でMH符号化するというものである。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
ようにさまざまな入力画像データに対して、異なった符
号化方式の画像圧縮装置を複数備える方式では、装置が
高価になってしまうといった欠点がある。又、多階調画
像データを予測処理し、得られた予測誤差データをビッ
トプレーン単位で平滑化した上でMH符号化するといっ
た方式では、高速に画像圧縮を行おうとすると、ビット
プレーン毎に符号化装置を用意しなければならず、これ
も装置が高価になるといった欠点がある。こうした従来
技術の欠点は、従来技術により圧縮した画像データを伸
張する画像伸張装置に対しても共通の欠点である。
【0004】本発明はこのような事情に鑑みてなされた
もので、安価に、かつ高速に、多階調画像データを圧縮
もしくは伸張処理できる画像圧縮伸張装置を提供するこ
とをその目的とする。
【0005】
【課題を解決するための手段】本発明に係る画像圧縮伸
張装置は、上記目的を達成するために、1画素N(Nは
1以上の整数)ビットの画像データを圧縮もしくは伸張
する画像圧縮伸張装置において、K(Kは2以上の整
数)個の画像データをまとめてM(Mは2以上の整数)
ビットに変換するデータ変換手段と、前記データ手段で
あるMビットの出力を適応予測してK個の画像データに
対するK個の予測誤差データに変換もしくはMビットの
予測誤差データを適応逆予測してK個の予測誤差データ
に対するK個の画像データに変換する複数個の選択制御
可能な予測器を備えた適応予測/逆予測部と、予測器を
選択制御する予測器選択制御手段とを具備したことを特
徴とする。
【0006】
【作用】本発明によれば、さまざまなビット数の多階調
画像データを、複数画素を所定のビット数のデータにま
とめて処理するとともに、画像データの構造に応じて使
用する適応予測器を限定して適応予測し、符号化するよ
うにしたので、一つの圧縮装置で二値画像データからN
ビット自然画像データまで効率よく圧縮することができ
る。又、画像データを符号化するための前処理や、復号
データを画像データに変換するための後処理に複雑な演
算回路を必要としないので、高速に圧縮処理や復号処理
を行うことができる。
【0007】
【実施例】以下、本発明の実施例について説明する。
【0008】図1は本発明による圧縮伸張装置の構成を
示すブロック図である。
【0009】システムバス1は、図示しない外部CPU
とのインタフェース、及び圧縮された符号データの入出
力を行うための32ビットのバスである。
【0010】画像バス2は、画像データの入出力を行う
ための16ビットのバスである。
【0011】データ変換部16は、図示しない外部CP
Uからの画像データ選択制御信号17によって1ビッ
ト,2ビット,4ビットの3種類の入力画像データの中
から、これから処理すべき画像データを選択するととも
に、複数画素をまとめて16ビットとした上で、画像バ
ス2へ出力するブロックである。
【0012】ラインメモリ3は、1ライン分の画像デー
タを記憶する記憶回路で、後述する適応予測/逆予測の
際の参照データを供給する記憶回路である。
【0013】ピンポンバッファ4,5は、画像データを
圧縮して得られた符号データを一時記憶する記憶回路で
ある。
【0014】制御部6は、図示しない外部CPUからの
制御信号に応じて圧縮伸張器の動作モードの規定や、使
用すべき適応予測器をイネーブル状態にしたり、各ブロ
ックの動作を制御するブロックである。
【0015】画像データ入出力部8は、画像バス2より
圧縮する画像データを入力したり、伸張された画像デー
タを画像バス2へ出力するブロックである。
【0016】適応予測/逆予測部11は、圧縮モードで
動作している時、画像データ入出力部8からの入力画像
データを、後述する適応予測アルゴリズムに従って1バ
イト単位で予測誤差データに変換して符号処理部14に
そのデータを送るブロックである。伸張モードで動作し
ている時は、復号処理部15で符号データから変換され
た予測誤差データを、1バイト単位で逆予測して画像デ
ータに変換し、画像データ入出力部8へその画像データ
を渡すブロックである。
【0017】符号処理部14は、適応予測/逆予測部1
1の出力である予測誤差データをニブル(4ビット)単
位で処理してゼロニブルのラン長を計数し、ゼロニブル
ランのターミネータとその時のラン長を符号化するブロ
ックである。符号については後述する。
【0018】復号処理部15は、符号データ入出力部7
からの32ビット単位の入力符号データを取り込んで復
号し、ゼロニブルラン長とそれに続くターミネータを求
め、予測誤差データをバイト単位で出力するブロックで
ある。
【0019】符号データ入出力部7は、システムバス1
を介して外部と符号データのやりとりを行うブロックで
ある。
【0020】ラインメモリ制御部9は、外付けされるラ
インメモリ3の読み出し/書き込み制御を行うブロック
である。
【0021】ピンポンバッファ制御部10は、外付けさ
れる2つのピンポンバッファ4,5の読み出し/書き込
み制御を行う。
【0022】16ビットアライメント部12は、1ライ
ン毎に符号処理部14で生成される可変長符号をピンポ
ンバッファ4,5に書き込むワード長(16ビット)に
符号データをまとめるブロックである。なお、最終ワー
ドは16ビット未満でもバッファに書き込まれる。
【0023】32ビットアライメント部13は、ピンポ
ンバッファ4,5から読み出したデータを符号データ入
出力部7に送る際にピンポンバッファの最終ワードの1
6ビット未満の時の余分なデータを除いて符号データ入
出力単位(32ビットワード)にまとめるブロックであ
る。
【0024】データ変換部16について更に詳細に説明
する。
【0025】図2は、データ変換部16のブロック図で
ある。1ビット画像データはシフトレジスタ61によっ
て4ビットパラレルデータに変換されて、マルチプレク
サ63に入力する。2ビット画像データも同様にシフト
レジスタ62によって4ビットパラレルデータに変換さ
れて、マルチプレクサ63に入力する。4ビット画像デ
ータは直接マルチプレクサ63に入力する。マルチプレ
クサ63は、画像データ選択制御信号17によって3種
類の4ビットデータから1つを選んで出力する。このマ
ルチプレクサ63の出力4ビットデータは、更にシフト
レジスタ64で16ビットデータに変換される。なお、
データ変換部16の出力は、図1の画像データ入出力部
8に直接入力してもよい。
【0026】次に、本発明に用いた適応予測アルゴリズ
ムについて説明する。
【0027】本発明における予測器は全部で16個あ
り、予測対象の画像の性質からテキスト予測器と中間調
予測器に分類される。これらの予測器は適応予測/逆予
測部11に含まれている。
【0028】図3はテキスト予測器を示す図である。文
字や線から構成されるテキスト原稿では、任意の画素は
それに隣接する画素と同じ値をとることが多いことか
ら、次の3つを導入した。
【0029】(1)水平線の予測に適している前ビット
(PB:previous bit)予測器(同図(a)参照)。
【0030】(2)垂直線の予測に適している直上ビッ
ト(BA:bit above )予測器(同図(b)参照)。
【0031】(3)予測しようとしている4ビット(1
ニブル)の画像データを1ライン前の1バイトの画像デ
ータの統計から決める垂直方向統計量(VS:vertical
statistics )予測器(同図(c)参照)。これはニブ
ル単位の垂直方向の予測に適している。
【0032】なお、図3において、P,Xi は予測され
るビット、X,Xi ,Yi は予測の基準になるビットを
示す。
【0033】図4は中間調予測器を示す図である。代表
的な中間調画像であるディザ画像では、任意のディザ周
期に対応する位置の画素は閾値が同じであることから同
じ値を取り易い。又、多階調画像データの隣接画素は比
較的同じような濃度情報を持つことが多い。従って、多
階調画像データをビットシリアルに並べた上で、1画素
のビット数の整数倍周期で各ビットの状態を調べても対
応ビットは同じ値になりやすいと考えられる。
【0034】(4)ディザ周期がPD =3からPD =1
6の範囲(PD =3〜10,12,14,15,16)
の12個の異なる中間調予測器。これらは着目ビットの
値がXビット前のビットと同一であるかを予測する。図
4(a)は、ディザ周期PD =5である場合の例を示
す。
【0035】(5)ニブル単位の水平予測を行う水平方
向統計量(HS)予測器。HS予測器は、予測しようと
しているニブルを含んだ画像データバイトに隣接したバ
イトの画像データの統計から決めるもので、予測バイト
に含まれる2ニブルの予測値は同じものを使用する。こ
のHS予測器は、上記12個の中間調予測器とは別の中
間調予測器として使用される。
【0036】以上、説明した16個の予測器を以下に説
明するように適宜組み合せてライン毎に8ビット(1バ
イト)単位で適応予測が行われていく。予測誤差は、予
測画像バイトとその予測値との間で排他的論理和(EO
R)を演算することで求める。ここで、予測的中ビット
は‘0’に、予測外れビットは‘1’となり、8ビット
の予測結果ビットが得られる。
【0037】次に、最適な予測器を選択していくアルゴ
リズムについて説明する。
【0038】 使用可能な中間調予測器のサブセット
の中から予測するバイトXiの3つ前のバイトXi−3
において最も予測誤りの少ない予測器を予測器変数ne
wHTに代入する。予測誤りの数が等しい場合は、水平
方向統計量(HS)予測器を最優先に、以下、空間周波
数の高い方、すなわち、ディザ周期の短い方を選択す
る。
【0039】 2つ前のバイトXi−2において、前
のバイトに関する予測器選択プロセスで決定された予測
器変数HTで表される中間調予測器と予測誤りを比較
し、newHTの予測誤りがHTよりも少なければne
wHTで表される予測器を新たなHTで表される予測器
に更新する。予測誤りの数が等しい場合はHTの更新は
行わない。
【0040】 予測するバイトXiの1つ前のバイト
Xi−1において、使用可能なテキスト予測器の中から
予測誤りの一番少なかった予測器を予測器変数nonH
Tに代入する。予測誤りの数が等しい場合は直上ビット
(BA)予測器を優先的に選択する。
【0041】 とで決定されたHTとnonHT
の双方の予測器についてバイトXi−1において予測誤
りを比較し、誤りの少なかった方を実際にバイトXiの
予測に用いる予測器を表す変数Finalに代入する。
尚、予測誤りが等しかった場合はバイトXi−1を予測
したときに用いたFinalと同じ種類の予測器をFi
nalとする。
【0042】各ラインでの予測開始の初期段階に、幾つ
かの予測器では予測に必要な画像データを画像領域の外
に求めなければならないが、この時、画像領域外のデー
タはすべて白、即ち0という値の画素として処理する。
【0043】又、各ラインの始めでは上記16個の予測
器の中のいずれかが初期予測器として選択される。もし
テキスト予測器が使用可能であれば、これが最優先に初
期予測器として選択される。テキスト予測器の中では、
直上ビット(BA)予測器、垂直方向統計量(VS)予
測器、前ビット(PB)予測器の順に優先度が決まって
いる。テキスト予測器が使用可能でない場合は、使用可
能な中間調予測器のサブセットの中で最も空間周波数が
高いものに対応した、即ち、最短パターン長の中間調予
測器が初期予測器として選択される。
【0044】初期予測器は各ラインの開始毎に選択され
る。この予測器は現在予測に使っている予測器よりも予
測誤差の小さい予測器がでてくるまで使用される。誤差
が等しい時は予測器の変更は行わない。
【0045】図5に適応予測/逆予測部11のブロック
図を示す。
【0046】マルチプレクサ38は、圧縮動作時には画
像データバイトを、伸張動作時には予測誤差バイトを選
択して適応予測器35へ入力する。マルチプレクサ36
は圧縮動作時には画像データバイトを、伸張動作時には
マルチプレクサ34で選択した適応予測器35で逆予測
された画像データバイトをレジスタ31,32,33で
構成されるシフトレジスタへ入力する。このシフトレジ
スタの出力はレジスタ33の入力をXiとすると、レジ
スタ33の出力であるイメージバイトはXi−1に、レ
ジスタ32の出力はXi−2に、レジスタ31の出力は
Xi−3に対応する。
【0047】中間調予測器群20、newHT選択回路
21、中間調予測器選択部18、レジスタ22、マルチ
プレクサ23,24、比較器25とから中間調予測器選
択装置が構成される。中間調予測器選択装置を更に詳細
に説明したものが図6である。
【0048】中間調予測器群20は、13組の中間調予
測器40(HS予測器を含む)と予測誤差カウンタ41
から構成されている。予測誤差カウンタ41は、各予測
器での予測誤差バイトの中に含まれる‘1’の数を計数
するもので、‘1’の数に応じて予測的中率を5レベル
に分類して出力する。
【0049】(1) ‘1’の数=0 ...出力=
‘000’ (2) ‘1’の数=1 ...出力=‘001’ (3) ‘1’の数=2 ...出力=‘010’ (4) ‘1’の数≧3 ...出力=‘100’ (5) 該当する予測器が予測器選択モードワードによ
って選択されていない場合、出力は‘111’とする。
【0050】ここで、予測器選択モードワードは、図7
に示すような16ビットのワードデータである。各ビッ
トは、それぞれ16個の予測器を使用するか否かを示
す。なお、図中のたとえばHt16は、ディザ周期PD
=16の中間調予測器を意味する。他も同様である。表
1に入力画像データに対して選択すべき予測器を示す。
このワードデータは、図1における32ビットのシステ
ムバス1から図示しない外部CPUより書き込まれる。
図5における予測器イネーブル信号は、予測器選択モー
ドワードの内容に等しい。
【0051】
【表1】 図5に示されるnewHT選択回路21は、図6に示さ
れる最小予測誤差検出回路42とマルチプレクサ43と
から構成される。又、中間調予測器選択部18はマルチプ
レクサ44とレジスタ45とから構成される。
【0052】最小予測誤差検出回路42は、13組の3
ビットの予測的中率データの中から最小値を与えた予測
器に対応したフラグビットを全てアサートする。但し、
予測誤差カウンタ41の出力が‘111’であった、す
なわち、選択されていない予測器に対応したフラグビッ
トはアサートしない。
【0053】マルチプレクサ43は、ラインの先頭のバ
イトに対しては初期中間調予測器選択肢で規定される唯
一の予測器に対応したフラグビットをアサートして予測
器変数newHTとして出力する。以降、レジスタ22
に保持された予測器変数newHTと最小予測誤差検出
回路42の出力である中間調予測器選択フラグをマルチ
プレクサ43で比較して、予測器変数newHTのアサ
ートビットが中間調予測器選択フラグでもアサートされ
ていた場合は、レジスタ22に保持された予測器変数n
ewHTを新しい予測器変数newHTとして出力す
る。予測器変数newHTのアサートビットと中間調予
測器選択フラグのアサートビットが一致していなかった
場合は、中間調予測器選択フラグのアサートビットに対
応した予測器の中で最も優先順位が高い予測器に対応し
たフラグビットだけをアサートし、それを新しい予測器
変数newHTとして出力する。こうして選択された新
しい予測器変数newHTはレジスタ22に一時記憶さ
れる。
【0054】マルチプレクサ23は、予測誤差カウンタ
41の出力である13組の3ビットの予測的中率データ
の中から、レジスタ22に保持された予測器変数new
HTのアサートビットに対応した中間調予測器の予測的
中率データを選択する。同様にマルチプレクサ24は、
レジスタ45に保持された予測器変数HTのアサートビ
ットに対応した中間調予測器の予測的中率データを選択
する。
【0055】マルチプレクサ44はラインの先頭のバイ
トに対しては初期中間調予測器選択肢で規定される唯一
の予測器に対応したフラグビットをアサートして予測器
変数HTとして出力する。以降、レジスタ22に保持さ
れた予測器変数newHTで規定された予測器の予測的
中率データ(マルチプレクサ23出力)とレジスタ45
に保持された予測器変数HTで規定された予測器の予測
的中率データ(マルチプレクサ24出力)の大小を比較
器25で比較した結果、マルチプレクサ23出力の方が
小さい場合のみレジスタ22の出力を新しい予測器変数
HTとして出力する。それ以外の場合はレジスタ45の
出力を新しい予測器変数HTとして出力する。
【0056】また、テキスト予測器群28、nonHT
選択回路27、レジスタ26とからテキスト予測器選択
部が構成される。ラインメモリ3からの前ラインからの
出力データは、VS予測器とBA予測器の予測値を与え
る。テキスト予測器選択部を更に詳細に説明したものが
図8である。
【0057】テキスト予測器群28は、3組のテキスト
予測器50と予測誤差カウンタ51から構成されてい
る。予測誤差カウンタ51は、中間調予測器群20の予
測誤差カウンタ41と同様な動作を行う。
【0058】nonHT選択回路27は、最小予測誤差
検出回路52とマルチプレクサ53とから構成される。
【0059】最小予測誤差検出回路52は、3組の3ビ
ットの予測的中率データの中から最小値を与えた予測器
に対応したフラグビットを全てアサートする。但し、予
測誤差カウンタ51の出力が‘111’であった、すな
わち、選択されていない予測器に対応したフラグビット
はアサートしない。
【0060】マルチプレクサ53は、ラインの先頭のバ
イトに対しては初期テキスト予測器選択肢で規定される
唯一の予測器に対応したフラグビットをアサートして予
測器変数nonHTとして出力する。以降、レジスタ2
6に保持された予測器変数nonHTと最小予測誤差検
出回路52の出力であるテキスト予測器選択フラグを比
較して、予測器変数nonHTのアサートビットがテキ
スト予測器選択フラグでもアサートされていた場合は、
レジスタ26に保持された予測器変数nonHTを新し
い予測器変数nonHTとして出力する。予測器変数n
onHTのアサートビットとテキスト予測器選択フラグ
のアサートビットが一致していなかった場合は、テキス
ト予測器選択フラグのアサートビットに対応した予測器
の中で最も優先順位が高い予測器に対応したフラグビッ
トだけをアサートし、それを新しい予測器変数nonH
Tとして出力する。こうして選択された新しい予測器変
数nonHTはレジスタ26に一時記憶される。
【0061】Final選択部29は、予測器変数HT
で規定された中間調予測器の予測誤差データECHTと
予測器変数nonHTで規定されたテキスト予測器の予
測誤差データECnonHTの大小を比較し、小さい予
測誤差データを与える予測器変数を新たな予測器変数F
inalとして出力する。予測誤差データの大きさが等
しい場合は、以前に予測器変数Finalとして選択し
た予測器の属するグループ(中間調予測器かテキスト予
測器)と同じグループの予測器に対する予測器変数を選
択する。レジスタ30は、このグループ情報を保持する
ものである。Final選択部29の出力である予測器
変数Finalは、VS予測器、BA予測器、PB予測
器、中間調予測器の対応した4ビットのフラグである。
【0062】適応予測器35は、マルチプレクサ38の
出力に対する予測もしくは逆予測を16種類の予測器で
同時に行う。13個の中間調予測器は、予測器変数HT
で規定された中間調予測器のみが動作して予測もしくは
逆予測を行う。マルチプレクサ34は、適応予測器35
の出力から予測器変数Finalで規定される予測器に
対する出力を選択する。レジスタ37は、マルチプレク
サ34の出力を一時記憶する。
【0063】次に、本発明における符号について説明す
る。
【0064】図1に示す適応予測/逆予測部11で適応
予測して得られた予測誤差データは、1ニブル(4ビッ
ト)づつ逐次符号化していく。符号はイメージバウンダ
リ符号、ラインバウンダリ符号、ラン/ターミネータ符
号、マルチプライヤ符号の4種類から構成されている。
各符号の符号長は4ビット、8ビット、12ビットのい
ずれかになるようにして、符号化処理と復号化処理を行
い易くしている。
【0065】表2にイメージバウンダリ符号を示す。イ
メージバウンダリ符号は、1ページの符号化された画像
データの始まりと終わりを表す符号である。
【0066】
【表2】 表3にラインバウンダリ符号を示す。ラインバウンダリ
符号は、新しいラインの始まりを示すと同時に、それに
続くラインデータがどのように符号化されているかを表
す符号である。
【0067】
【表3】 ラン/ターミネータ符号は、適応予測して得られた予測
誤差データのビット列を、4ビットが全て‘0’である
ゼロニブルの連続する数(ゼロニブルラン)と、そのゼ
ロニブルランを中断させた非ゼロのニブル(ターミネー
タ)をハフマン符号化したものである。ターミネータ
は、ラン/ターミネータ符号を定義する上で次の2つに
分類される。
【0068】TA :1ニブル内に一つだけエラービット
を含んだもの。
【0069】TB :1ニブル内に複数のエラービットを
含んだもの。
【0070】なお、エラービットとは‘1’の値をとる
ビットである。
【0071】表4は、TA ターミネータに対するラン/
ターミネータ符号を示したものである。
【0072】
【表4】 表5は、TB ターミネータに対するラン/ターミネータ
符号を示したものである。
【0073】
【表5】 表6は、TA ターミネータに関するaa符号とTB ター
ミネータに関するbbbb符号を示したものである。な
お、表4と表5の中で、ttttは非ゼロのターミネー
タの二進数表示したもの、r rrrr,rr rrr
r,ss ssssはランレングスを二進数表示したも
のである。
【0074】
【表6】 マルチプライヤ符号は、ラン長64以上のゼロニブルを
表現するために用いる符号で、64の整数倍長のランを
表す。ターミネータの出現によりゼロニブルランが途絶
えた時、その時のラン長をZとし、 Z=64×M+T M≧1、T≦63 であったとすると、最初にマルチプライヤ符号でMを符
号化し、次にラン/ターミネータ符号でTを符号化す
る。Mの二進数表現をrr rrrrとすると、Mに対
するマルチプライヤ符号は11rr rrrr 000
0で与えられる。但し、 00 0001≦rr rrrr≦11 1111 M=64、つまりゼロニブルラン長が4096に達した
時、ターミネータの出現の有無に依らずマルチプライヤ
符号 1100 0000 0000 (rr rrrr=0
0 0000) が生成される。
【0075】図1に示す符号処理部14は、適応予測/
逆予測部11の出力である予測誤差データを以下の手順
で符号化していく。
【0076】図9と図10は、符号処理部14の符号化
手順を示したフローチャートである。1ラインの符号化
に先立ち、ゼロニブルを計数する12ビットのニブルカ
ウンタをクリアする(S601)。符号処理を開始する
と、予測誤差データバイトを取り込むと同時に予測誤差
データバイト数(エラーバイト数)をカウントする(S
602,S603)。取り込んだ予測誤差データバイト
は上位ニブルから取り出して(S604)ゼロニブルか
どうか評価する(S605)。取り出したのがゼロニブ
ルの場合はニブルカウンタをインクリメントし(S60
7)、次に下位ニブルを取り出して(S609,S60
6)再びゼロニブルかどうか評価する。取り出したのが
非ゼロニブルの場合は、そのニブルはターミネータとし
てその時のニブルカウンタの値RLをラン/ターミネー
タ符号化する(S612,S613)。
【0077】ラン/ターミネータ符号を生成する時は、
ニブルカウンタの値RLの大きさに従って(S701〜
S705)ラン/ターミネータ符号(S711〜S71
5)かマルチプライヤ符号(S710)のいずれかを生
成する。ラン/ターミネータ符号を生成する場合は、タ
ーミネータがTA ターミネータかTB ターミネータかを
判別し、その結果に応じて符号を生成する(S706〜
S709)。
【0078】符号を生成すると、ニブルカウンタをクリ
ア(S617)してS609に戻り、符号化を継続す
る。下位ニブルを取り出してゼロニブルかどうかの評価
を終了したら、今まで受け取った予測誤差データバイト
数が所定の大きさ(1ラインの画像データ数)に達した
かどうか判定し(S610)、所定の大きさ未満の場合
は次の予測誤差データバイトを取り込む。符号化の途中
でニブルカウンタのインクメント時にキャリーを発生し
た場合 (ステップ608)は、拡張マルチプライヤ符号
‘C00 HEX(=1100 0000 000
0)’を生成する(S614)。1ラインの最終ニブル
がゼロニブルの場合にターミネータとなるニブルがそれ
以降で発生しないため、その時点のゼロニブルランを符
号化することが出来なくなる。そこで、1ラインのデー
タ数分の予測誤差データを全て処理するとニブルカウン
タの値が0かどうか検査する(S611)。この結果、
ニブルカウンタの値が0でない場合は仮想のターミネー
タを‘1000’に設定して符号化を行い(S615、
S616)、1ライン分の予測誤差データの符号化を終
了する。ニブルカウンタの値が0であれば、そのまま1
ライン分の予測誤差データの符号化を終了する。
【0079】符号処理部14の概略構成例を図11に、
また、動作タイミングを図12に示す。適応予測/逆予
測部11で適応予測された8ビットの予測誤差データ
は、セレクタ14aによりニブルクロックに同期して4
ビット(1ニブル)ずつ符号処理部14へ取り込まれ
る。適応予測/逆予測部11のデータ処理のサイクル
は、ニブルクロックで2サイクルに付き1バイトのデー
タを処理することになる。符号処理部14へ取り込んだ
4ビット予測誤差データは、一旦ニブルクロックでレジ
スタ14bにラッチされる。このラッチした予測誤差ニ
ブルを評価して4ビットが全て‘0’のゼロニブルであ
れば、ニブルカウンタ14cのカウンタ動作をイネーブ
ルにしてニブルカウンタ14cはニブルクロックにより
カウントアップされる。評価結果が非ゼロニブルであっ
た時は、そのサイクルでラン/ターミネータ符号の生成
が行われ、次のサイクルでニブルカウンタ14cをクリ
アする。符号の生成は、デコーダ14dにおいて、符号
生成サイクルでラッチされている予測誤差ニブルをター
ミネータとし、その時のニブルカウンタ14cの下位6
ビットを用いて行われる。
【0080】図12のタイミングチャートにおいて、ゼ
ロニブルカウント値Kの値が64を超えていた場合は、
ニブルカウンタの上位6ビットを用いてマルチプライヤ
符号を生成し、次いでニブルカウンタの下位6ビットを
用いてラン/ターミネータ符号を生成する。従って、1
つの符号生成サイクルの生成符号量は最大24ビットと
いうことになる。図12に示すタイミングチャートの例
では、1符号生成サイクルでの生成符号量を12ビット
以下にするために、マルチプライヤ符号の生成サイクル
をラン/ターミネータ符号のそれより1ニブルクロック
サイクル早めている。つまり、符号処理部14へ取り込
んだ時点の予測誤差ニブルが非ゼロニブルであって、そ
の時のニブルカウンタの値に1を加えたものの上位6ビ
ットが0でない場合に、マルチプライヤ符号を生成して
しまう。
【0081】次に、本発明の画像圧縮伸張装置の圧縮モ
ードでの全体の動作について説明する。
【0082】圧縮動作に先立ち、システムバス1を介し
て画像圧縮伸張装置の動作モードを制御部6に対して圧
縮モードに設定する。更に、前記表1を参照し、圧縮処
理すべき画像データの1画素当たりのビット数に応じて
使用すべき予測器を選択して、適切な予測器選択モード
ワードを、同じくシステムバス1を介して制御部6に設
定する。圧縮モードでは、圧縮したい画像データは、デ
ータ変換部16で画像データ選択制御信号17により1
6ビットに整形された後、画像バス2から画像データ入
出力部8に取り込まれる。取り込まれた画像データは、
ラインメモリ制御部9に送られてラインメモリ3に書き
込むと同時に、同じアドレスに書き込まれた1ライン前
の画像データを読み出して、それぞれを一緒に適応予測
/逆予測部11へ送る。適応予測/逆予測部11は、制
御部6により使用すべき予測器が限定された上で、適応
予測モードで動作するように制御される。適応予測/逆
予測部11で画像バス2から取り込んだ画像データは、
予測誤差データに変換されて符号処理部14へ渡され
る。符号処理部14は、逐次予測誤差データをランレン
グス符号化して出力する。その可変長符号に、16ビッ
トアライメント部12では、1ページの最初のラインに
対しては先頭に8ビットのPBKラインバウンダリ符号
を、それ以外ではNORラインバウンダリ符号を付け
る。そして、符号処理部14から送られてきた符号が1
6ビットになったらピンポンバッファ制御部10へ送
る。ピンポンバッファ制御部10は、1ラインの処理が
終了するまで2つのピンポンバッファ4,5のいずれか
一方に16ビットにまとめられた符号データを書き込み
続ける。この時、もう一方のピンポンバッファからは、
前のラインの符号化の際に書き込まれた符号データを読
み出し続ける。ピンポンバッファ4,5から読み出した
1ライン前の符号データは、32ビットアライメント部
13へ送られる。ここでは1ページの符号の先頭にSO
Iイメージバウンダリ符号を付ける。それ以降は、任意
のラインの符号とその次のラインの符号の間に符号以外
の余計なデータが入らないようにしながら、符号データ
の転送単位である32ビットに符号データを再度整形
し、32ビットになった時点で符号データ入出力部7へ
32ビットデータを送る。符号データ入出力部7は、外
部に設けられた図示しない符号データ読み出し回路から
の制御信号によって符号データをシステムバス1上に送
り出す。
【0083】16ビットアライメント部12の動作を更
に詳細に説明する。
【0084】図13は16ビットアライメント部12の
概略回路構或を示したブロック図であり、図14はその
動作を示したタイミング図である。図中の動作クロック
は、図12のニブルクロックと同じものである。
【0085】符号処理部14で生成される符号の長さ
は、2ビットの二進数‘01’〜‘11’で表現するこ
とができる。この2ビットの二進数を、符号長を表す符
号長フラグとする。符号処理部14からの出力が供給さ
れる16ビットアライメント部12は、8個の4ビツト
レジスタ12a−1〜12a−8からなるデータポイン
タが用意され、4,8,12ビットの符号データは、デ
マルチプレクサ12bを介して上位レジスタ12a−1
側から順次書き込まれていく。符号処理部14から16
ビットアライメント部12へ符号データを送る都度、A
LU(算術論理ユニット)12c及びアキュムレータ1
2dは、符号長フラグを3ビットの符号長累計値に加算
していく。累計符号長を示すデータは現入力符号長を示
すデータとともにデコーダ12eに供給されシフトレジ
スタ選択信号EN0〜EN7を生成する。
【0086】16ビットアライメント部12のデータポ
インタに最初に4ビットの符号Daを書き込む時、その
データはレジスタ12a−1に書き込まれ、その状態で
の符号長フラグ累計値は‘001’になっている。符号
処理部14で12ビットの符号Dbが生成されて16ビ
ットアライメント部12へ送られてくると、符号長フラ
グ累計値は‘001’にDbの符号長フラグ‘11’を
加算して‘1001’となる。符号長フラグ累計値の最
上位ビットが0から1に変わったということは、データ
ポインタに4ニブル、即ち16ビットがたまったこと
と、レジスタ12a−4にデータが書き込まれたことを
意昧する。従って、16ビットアライメント部12は、
データポインタ内のレジスタ12a−1〜12a−4に
蓄えられた符号DaとDbを、シーケンサ12fにより
制御されるセレクタ12gにより選択して16ビットレ
ジスタ12hに書さ込む。こうして符号DaとDbはピ
ンポンバッファ制御部10へ送られる。
【0087】更に12ビットの符号Dcが生或されて1
6ビツトアライメント部12に送られてデータポインタ
に取り込むと、符号長フラグ累計値は‘111’にな
る。この時の3ニブルのデータはレジスタ12a−5〜
12a−7に書き込まれる。
【0088】次に8ビットの符号Ddが送られてくる
と、符号長フラグ累計値は‘001’になる。符号長フ
ラグ累計値の最上位ビットが1から0に変わったという
ことは、レジスタ12a−8にデータが書き込まれたこ
とを意味する。この状態では、レジスタ12a−5〜1
2a−7には符号Dcが、レジスタ12a−8には符号
Ddの上位ニブルが、レジスタ12a−1には符号Dd
の下位ニブルが書き込まれている。データポインタ内の
レジスタ12a−5〜12a−8に蓄えられた符号Dc
と符号Ddの上位ニブルはセレクタ12gにより選択さ
れてレジスタ12hに書き込まれ、ピンポンバッファ制
御部10へ送られる。
【0089】次のニブルクロックサイクルで8ビットの
符号Deが送られてくると、符号Deはレジスタ12a
−2と12a−3に書き込まれ、符号長フラグ累計値は
‘011’に変わる。
【0090】8ビットの符号Dfが送られてくると、符
号長フラグ累計値は‘101’となって最上位ビットが
0から1に変わる。ここではレジスタ12a−1に蓄え
られた符号Ddの下位ニブルと、レジスタ12a−2と
12a−3に蓄えられた符号Deと、レジスタ12a−
4に蓄えられた符号Dfの上位ニブルを合わせた16ビ
ットがセレクタ12gにより選択されてレジスタ12h
に書き込まれ、ピンポンバッファ制御部10へ送られ
る。レジスタ12a−5には符号Dfの下位ニブルが残
っている。
【0091】この動作を繰り返して1ライン分の画像デ
ータに対する符号は16ビット毎にピンポンバッファ制
御部10へ送ってピンポンバッファ4,5に書き込まれ
る。尚、1ラインの先頭には8ビットのラインバウンダ
リ符号が予め付加されているので、符号長フラグ累計値
の初期値は‘010’である。又、1ラインの最後に生
成した符号を16ビットアライメント部12へ送ってデ
ータポインタに符号データが残った場合、その16ビッ
トに満たない端数もピンポンバッファ制御部10へ送
る。1ラインの最後の符号を含むデータをピンポンバッ
ファ制御部10へ送った時点での符号長フラグ累計値の
下位2ビットは、そのデータの有効ニブル数を示し、こ
の情報は次のラインの処理が終了するまでにピンポンバ
ッファに書かれた前のラインの符号データを読み出して
32ビットアライメント部13で32ビットに整形する
際に用いる。
【0092】図15は圧縮動作時のデータの流れを示す
図である。画像データ入出力部8に入力した画像データ
81は、ラインメモリ3に入力すると共に適応予測/逆
予測部11で予測誤差データに変換した後、符号処理部
14で符号データ85に圧縮される。最初のラインの画
像データL1 を処理する時は、ラインバウンダリ符号8
4はPBKラインバウンダリ符号となり、ラインメモリ
3の出力データ83は強制的に0にして適応予測/逆予
測部11へ入力される。ラインメモリ3の出力データ8
3は通常は1ライン前の画像データである。例えば2ラ
イン目の画像データL2 を圧縮処理する場合、ラインメ
モリ3の入力データ82はL2 であって、出力データ8
3はL1 となる。1ライン目の画像データL1 を圧縮し
て得られた符号データC1 はピンポンバッファAに書き
込まれる。この時のピンポンバッファAへの出力アドレ
ス86は書き込みアドレスであって、符号データC1
最終データを書き込んだ時点でのアドレスはA1であ
る。
【0093】符号処理部14で生成された符号データの
ピンポンバッファへの書き込み終了時点のアドレスの値
は、そのラインの符号量を表している。制御部6は、1
ラインの処理が終了する度に符号データを書き込んだピ
ンポンバッファの書き込み終了アドレスを参照すること
により、バウンダリ符号の決定と、それに伴って出力す
べきデータを決定する。
【0094】図16は、1ラインの処理終了時点での制
御部6の動作を説明するフローチャートである。
【0095】1ラインの所定のデータ量を符号処理部1
4で符号化処理し終わると(S801)、読み出し側ピ
ンポンバッファ(説明の便宜上、ピンポンバッファBと
する)から前ラインに対する符号データの読み出しが終
了したことを確認した上で(S802)、ピンポンバッ
ファ制御部10のピンポンバッファAの書き込みアドレ
スカウンタの停止アドレスの値WRAを制御部6はフェ
ッチする(S803)。この値と、ラインバウンダリ符
号をNORラインバウンダリ符号とするのかRAWライ
ンバウンダリ符号とするのかを決める判定条件である閾
値THRSと比較する(S804)。
【0096】停止アドレスの値WRAが閾値THRSを
越えていなければ、制御部6はピンポンバッファAを読
み出し側に、ピンポンバッファBを書き込み側に切り換
える(S805)。新たに書き込み側となったピンポン
バッファBには、次のラインの符号化処理の開始と同時
に符号データが16ビットに整形される毎に符号データ
が書き込まれる。また、読み出し側となったピンポンバ
ッファAからは、符号データ入出力部7からの符号デー
タ読み出し要求の到着によって符号データが読み出され
て32ビットアライメント部13に送られて32ビット
に整形された後、符号データ入出力部7に送られる。
【0097】停止アドレスの値WRAが閾値THRSよ
り大きい場合、制御部6は、ピンポンバッファBを、次
のラインの符号化処理の結果を一時記憶するために書き
込み側に切り換える(S806)。そして、次のライン
の符号化処理の開始とともに、ラインメモリ3から読み
出される最初の画像データ8ビットの先頭にRAWライ
ンバウンダリ符号‘00 HEX’を付加して16ビッ
トデータとした上でピンポンバッファAに書き込む(S
807)。以降は、ラインメモリ3から読み出された画
像データを16ビット単位で1ライン分、ピンポンバッ
ファAに順次書き込んでいく (ステップ808)。
【0098】いずれの場合も、1ライン分の処理が終了
する毎にピンポンバッファの書き込み側と読み出し側を
切り換えながら、1ページ分のライン数の画像データを
処理し続ける (ステップ809)。画像データもしくは
符号データが書き込まれているバッファから32ビット
アライメント部13へのデータの読み出しは、符号デー
タ入出力部7の符号データ読み出し要求を受けてピンポ
ンバッファ制御部10が制御する。そして、符号処理部
14で生成され、16ビットアライメント部12で16
ビットに整形された符号データのもう一方のピンポンバ
ッファへの書き込みは、16ビットアライメント部12
が16ビットのデータを出力する度にピンポンバッファ
制御部10が制御する。
【0099】図15における第1ライン目の処理では、
アドレスA1が閾値THRSより小さかったので、2ラ
イン目の画像データL2 を処理する最中にピンポンバッ
ファAへの出力アドレス86を読み出しアドレスにし
て、0番地から最終A1番地までピンポンバッファAの
内容が32ビットアライメント部13への入力データ8
8として読み出される。2ライン目で32ビットアライ
メント部13へ入力される符号データは、先頭にPBK
ラインバウンダリ符号を伴った符号データC1 である。
【0100】2ライン目以降のラインバウンダリ符号8
4は、NORラインバウンダリ符号である。2ライン目
の画像データL2 を圧縮処理して得られた符号データC
2 は、今度はピンポンバッファBに書き込むので、ピン
ポンバッファBへの出力アドレス87は書き込みアドレ
スになる。書き込み最終アドレスB1を閾値THRSと
比較した結果B1の方が小さかったので、符号データC
2 は3ライン目の処理中にピンポンバッファBへの出力
アドレス87を読み出しアドレスに切り替えて、0番地
から最終B1番地まで読み出して32ビットアライメン
ト部13へと送られる。
【0101】3ライン目の画像データL3 を圧縮処理し
て得られた符号データC3 は、ピンポンバッファAに書
き込む。この時の書き込み最終アドレスA2は、閾値T
HRSよりも大きかったので、3ライン目の符号データ
は先頭にRAWラインバウンダリ符号を付けて、圧縮処
理して得られた符号データC3 の代わりに圧縮する前の
画像データL3 に置き換えられる。この処理は、4ライ
ン目の画像データL4を圧縮処理する際のラインメモリ
3の出力データ83がL3 なので、先頭1バイトにRA
Wラインバウンダリ符号を付加した上でL3 をピンポン
バッファAに書き込みながら読み出して32ビットアラ
イメント部13へ送る。この時のピンポンバッファAへ
の出力アドレス86は、書き込みアドレス/読み出しア
ドレス交互になり、最終アドレスは、1ラインの画像デ
ータ量OBJHにRAWラインバウンダリ符号が追加さ
れたのでOBJH+1になる。この間、ピンポンバッフ
ァBには4ライン目の画像データL4 に対する符号デー
タC4 が書き込まれる。
【0102】任意のラインの圧縮処理が終了した時点
で、そのラインの画像データと前のラインの画像データ
が完全に一致しているかが判明するが、完全に一致して
いると判定した場合は、そのラインの画像データに対す
る符号データはRPTラインバウンダリ符号に置き換え
られる。図15では、6ライン目の画像データL6 を圧
縮処理し終わった時点で5ライン目の画像データとの一
致が確認されたので、ピンポンバッファBに書き込まれ
た6ライン目の符号データC6 は読み出さず、代わりに
RPTラインバウンダリ符号が1つだけ32ビットアラ
イメント部13へ送られる。
【0103】このように、本発明では様々な入力画像デ
ータを複数個まとめて所定の大きさにすれば、単一の圧
縮装置で符号化することが可能になっている。
【0104】次に、復号処理部15の動作について説明
する。
【0105】図17はバウンダリ符号の検出処理を説明
したフローチャートである。復号処理は符号データ入出
力部7から取り込んだ符号データを先頭から1バイトず
つ復号処理部15へ取り込む(S901)。符号データ
の先頭はSOIイメージバウンダリ符号なので、先ずS
OIイメージバウンダリ符号‘70 HEX’の検出を
行う(S902)。復号処理開始の時点でSOIイメー
ジバウンダリ符号を検出したのであれば、次の符号デー
タバイト以降で1ページの画像データの復号を行う(S
908,S910)。1ページの画像データの復号の途
中でSOIイメージバウンダリ符号を検出した場合はエ
ラーとなって処理を中止する(S909)。1ページの
画像データの復号が開始すると、先ずはラインバウンダ
リ符号‘00 HEX’〜‘03 HEX’(表3参
照)の検出を行って(S904〜S907)それに続く
符号データの処理モードを決定する(S914,S91
5)。バウンダリ符号検出時にEOIイメージバウンダ
リ符号‘71 HEX’を検出した場合、その時点まで
に復号処理したライン数が所定の値OBJWに一致した
場合は復号処理を終了し(S912)、一致しなかった
場合はエラーとなって処理を中止する(S911,S9
13)。但しこの判定は必要条件ではなく、EOIイメ
ージバウンダリ符号を検出した時点で復号処理を終了す
る(S912)としても差し支えない。
【0106】検出したラインバウンダリ符号に対する処
理モードの違いは、 NORラインバウンダリ符号に続く符号データは、
予測誤差データに伸張して適応予測/逆予測部11に送
り、そこで既に逆予測して復元した画像データとライン
メモリ3の内容を用いて逆予測して画像データ入出力部
8へ送り、出力する。
【0107】 PBKラインバウンダリ符号に続く符
号データは、予測誤差データに伸張して適応予測/逆予
測部11に送り、そこで既に逆予測した画像データと前
ラインの画像データを強制的に0にしたものを用いて逆
予測して画像データ入出力部8へ送り、出力する。
【0108】 RAWラインバウンダリ符号に続く符
号データは生の画像データなので適応逆予測しないで画
像データ入出力部8へ送り、出力する。この際、ライン
メモリ3の内容をRAWラインバウンダリ符号に続く画
像データで更新する。
【0109】 RPTラインバウンダリ符号に続く符
号はない。この場合はラインメモリ3の内容をそのまま
画像データ入出力部8へ送り、出力する。
【0110】図18と図19は、1ライン内での復号処
理を説明するフローチャートである。なお、図におい
て、NHは上位ニブル、NCはニブルカウンタ設定値、
TNはターミネータ、D1 は符号バイト(d7 6 5
4 3 2 1 0 )を示す。
【0111】検出したラインバウンダリ符号がNOR又
はPBKラインバウンダリ符号の場合、それに続く符号
データバイトを取り込んで上位ニブルを調べてその符号
の長さを先ず求める(S920〜S926)。上位ニブ
ルが‘1100(C HEX)’〜‘1111(F H
EX)’の範囲にある場合、その符号は12ビット(3
ニブル)の符号である(S921)。上位ニブルが‘0
000’〜‘0111(7 HEX)’の範囲にある場
合、その符号は8ビット(2ニブル)の符号である(S
923)。それ以外の場合は4ビット(1ニブル)の符
号で、この場合は符号の値からゼロニブルランが0でそ
れに続くTA ターミネータが直ちに求まる(S924〜
S926,S943〜S946)。
【0112】これから復号する符号データが12ビット
の符号の場合(S922)、ニブルカウンタに設定すべ
きパラメータは、先ず取り込んだ符号データバイトのビ
ット0からビット5の6ビットである(S951)。と
ころで、12ビットの符号はラン/ターミネータ符号と
マルチプライヤ符号のいずれかであって、ラン/ターミ
ネータ符号の場合は、先ず取り込んだ符号データバイト
に続く4ビットをターミネータとしターミネートする。
この場合、ゼロニブルランは63以下であるから、ニブ
ルカウンタへの設定値は、上位6ビットを0として、下
位6ビットにニブルカウンタ設定パラメータを配したも
のとなる。マルチプライヤ符号の場合は、その符号デー
タバイトに続く4ビットは‘0000’であって、ニブ
ルカウンタ設定パラメータはニブルカウンタの上位6ビ
ットに、下位6ビットに0を設定しなければならない。
そこで、一旦ニブルカウンタには仮の値を設定してダウ
ンカウントし、ゼロニブルを発生させた上で更に符号デ
ータバイトを取り込み、その上位ニブルをターミネータ
として調べる(S952〜S955)。
【0113】ターミネータがTB ターミネータであっ
て、先に取り込んだ符号データバイトが‘C0 HE
X’もしくは‘C1 HEX’の場合、そうした符号は
符号処理部14で生成されないので符号エラーとして以
降の復号処理を中止する(S956,S960,S96
5)。そうでない場合は、この12ビットの符号はTB
ターミネータをターミネータとするラン/ターミネータ
符号ということになる。そして、このことが判明した時
点では既にニブルカウンタが動作開始しているので、最
終的に正しいゼロニブルランを生成するようにニブルカ
ウンタ設定値を補正する(S964)。
【0114】ターミネータがTA ターミネータであっ
て、ニブルカウンタ設定パラメータの十進表現が26未
満の場合は、ニブルカウンタへの再設定値はニブルカウ
ンタ設定パラメータに64を加えた上でそれが判明する
までにニブルカウンタが計数したゼロニブル数を引いた
ものになる(S958,S963)。そうでない場合
は、ニブルカウンタ設定パラメータから既にニブルカウ
ンタが計数したゼロニブル数を引いた値に補正する(S
964)。
【0115】ターミネータがゼロニブルの場合(S95
7)はマルチプライヤ符号である。この場合は、更にニ
ブルカウンタ設定パラメータの値を調べて拡張マルチプ
ライヤ符号かどうかを調べ、最終的に正しいゼロニブル
ランを生成するようにニブルカウンタ設定パラメータを
補正する(S959,S961,S962)。
【0116】これから復号する符号データが8ビットの
符号の場合(S927)、先ず最初に取り込んだ符号バ
イトの値の大きさを調べる(S928)。取り込んだ符
号バイトの値の大きさが‘68 HEX’以上の場合
は、その8ビット符号はTB ターミネータを伴うゼロニ
ブルランが0もしくは1の予測誤差を表したものにな
る。この時のターミネータは取り込んだ符号バイトのビ
ット1からビット4である。そして、ゼロニブルランの
大きさはビット0である(S929〜S934)。取り
込んだ符号バイトの値の大きさが‘68 HEX’未満
の場合、ニブルカウンタ設定パラメータは、下位6ビッ
トに取り込んだ符号バイトのビット2からビット7を割
当て上位6ビットは0にしたものになる(S935)。
この時のターミネータはTA ターミネータで、取り込ん
だ符号バイトのビット1とビット0がその種類を表して
いる(S936〜S942)。
【0117】以上のようにニブルカウンタ設定パラメー
タとターミネータを取り込んだ符号データを復号して求
めると、ニブルカウンタにその設定パラメータを設定し
てダウンカウントを行う。ニブルカウンタの動作クロッ
クはニブルクロックである。ニブルカウンタがダウンカ
ウントしている期間、ゼロニブルをニブルクロックに同
期して出力する。そしてニブルカウンタが停止した時点
でターミネータをニブルクロックに同期して出力する。
【0118】復号処理部15の動作タイミングを図20
に示す。復号処理部15の動作クロックはニブルクロッ
クである。時刻T1で取り込んだ最初の復号すべき符号
データバイトはC0 である。C0 の上位ニブルをC0H
表し、下位ニブルをC0Lで表している。C0 を図18、
図19で説明した処理を行った結果、C0 は8ビットの
符号でニブルカウンタ設定値が0、ターミネータはTB0
となった。C0 は1バイトが完全に処理されるのでデー
タワードポインタにはC0 を捨てて新たにC2を取り込
み、結果としてC1 2 がデータワードポインタに蓄え
られたことになる。ニブルカウンタ設定値が0なので、
ニブルカウンタにはその設定値を設定しない。ニブルカ
ウンタのイネーブル信号はネゲート状態でボローを出力
し続けている。ターミネータTB0は次のニブルクロック
サイクル時刻T2で出力すると共に、C1 を復号すべき
符号データバイトとして取り込む。C1 の上位ニブルC
1Hが4ビットの符号でニブルカウンタ設定値は0、ター
ミネータはTA1になった。ターミネータTA1は時刻T3
で出力される。
【0119】時刻T3以降で復号すべき符号データバイ
トはC1 の上位ニブルC1Hだけが処理し終わっているの
で、C1 の下位ニブルC1 LとC2 の上位ニブルC2H
組み合せたデータバイトになる。このデータバイトは8
ビットの符号でニブルカウンタ設定値が0、ターミネー
タはTB1となった。この処理の間にC1 は1バイト完全
に処理されるのでデータワードポインタには新たにC3
を取り込んでデータワードポインタの内容はC2 3
なる。
【0120】時刻T4でターミネータTB1を出力し、次
に復号すべき符号データバイトとしてC2 の下位ニブル
2LとC3 の上位ニブルC3Hを組み合せたデータバイト
を取り込む。このデータバイトは8ビットの符号でニブ
ルカウンタ設定値が1、ターミネータはTB2となった。
この時、ニブルカウンタには1を設定すべくロード信号
が入力する。ニブルカウンタはニブルクロックでこの設
定値をロードし、ダウンカウントを開始する。ダウンカ
ウントの開始によりボローはネゲートされる。ニブルカ
ウンタが動作している時刻T5とT6の間はゼロニブル
が出力される。C2 の下位ニブルC2Lを処理したことで
データワードポインタには新たにC4 を取り込んでデー
タワードポインタの内容はC3 4 となる。
【0121】時刻T6ではニブルカウンタのダウンカウ
ントが終了するのでボローがアサートされる。これに伴
ってターミネータTB2が出力される。この時点での復号
すべき符号データバイトはC3 の下位ニブルC3LとC4
の上位ニブルC4Hを組み合せたデータバイトである。こ
のデータバイトが12ビットの符号であることは時刻T
7までに判明するので、時刻T7に復号すべき符号デー
タバイトとしてC4 の下位ニブルC4LとC5 の上位ニブ
ルC5Hを組み合せたデータバイトを取り込む。ニブルカ
ウンタ設定パラメータがKであることも同時に判明する
が、時刻T7以降で残りの4ビットを参照しなければこ
のニブルカウンタ設定パラメータKをどのようにニブル
カウンタに設定すべきかが確定できない。そこで、時刻
T7以降でニブルカウンタを動作させるために仮設定値
を時刻T7でニブルカウンタにロードする。
【0122】時刻T7から時刻T8の間でC4 の下位ニ
ブルC4LとC5 の上位ニブルC5Hを組み合せたデータバ
イトを処理して、この符号はターミネータをTA2とする
ラン/ターミーネータ符号であることが判明する。この
間にニブルカウンタは1だけダウンカウントしているの
で、時刻T8でニブルカウンタに設定すべき値はこの分
を差し引いたK−1になる。この動作を繰り返して符号
データの復号が行われる。
【0123】尚、復号処理方法は実施例に限定されるも
のではない。例えば、実施例では12ビット符号を復号
する場合に、12ビット符号の種類が確定する迄にニブ
ルカウンタに仮設定値を設定して動作させ、確定した時
点でそれまでにニブルカウンタが計数したゼロニブル数
を、本来ニブルカウンタに設定する設定値から差し引い
て設定している。この場合は12ビットの減算器を特別
に必要とし、ニブルカウンタ設定値の演算時間が必要に
なる。ニブルカウンタの停止条件は、ボローが発生、即
ちニブルカウンタの値が0に一致した時である。そこ
で、12ビット符号の先頭8ビットを復号して得られる
ニブルカウンタ設定パラメータ(符号データバイトのビ
ット0からビット5の6ビット)をニブルカウンタの下
位6ビットに設定し、その時のニブルカウンタ上位6ビ
ットを0に設定してニブルカウンタを動作させる。次の
ニブルクロックサイクルで12ビット符号がラン/ター
ミネータ符号と判定された場合は、ニブルカウンタの値
が0になった時点でターミネータを出力する。ターミネ
ータがTA ターミネータで、かつニブルカウンタ設定パ
ラメータが26未満の場合は、次のニブルクロックサイ
クルでニブルカウンタに対して上位5ビットを0に、下
位6ビットを符号データバイトのビット0からビット5
の6ビットに、そしてニブルカウンタのビット6を1に
再設定して、ニブルカウンタを動作させる。この場合、
ニブルカウンタの値が1になった時点でターミネータを
出力する。マルチプライヤ符号と判定された場合は、次
のニブルクロックサイクルでニブルカウンタには上位6
ビットに符号データバイトのビット0からビット5の6
ビットを、下位6ビットに0を再設定して、ニブルカウ
ンタを動作させる。この場合もニブルカウンタの値が1
になった時点でターミネータを出力する。こうすること
で、12ビットの減算器は不要になり、ニブルカウンタ
設定値の演算時間もなくなる。
【0124】次に、本発明の画像圧縮伸張装置の伸張モ
ードでの全体の動作について説明する。
【0125】伸張動作に先立ち、システムバス1を介し
て画像圧縮伸張装置の動作モードを制御部6に対して伸
張モードに設定する。更に、伸張したい符号データの圧
縮処理時に使用した予測器選択モードワードを、システ
ムバス1を介して制御部6に設定する。伸張モードでは
伸張したい符号データをシステムバス1から符号データ
入出力部7に取り込む。取り込まれた符号データは復号
処理部15に送られてバウンダリ符号の検出が行われ
る。
【0126】検出したバウンダリ符号がNORラインバ
ウンダリ符号又はPBKラインバウンダリ符号であれ
ば、それに続く符号データをランレングス復号して予測
誤差データに戻す。復号した予測誤差データは適応予測
/逆予測部11へ送られる。適応予測/逆予測部11
は、制御部6により使用すべき予測器が限定された上
で、適応逆予測モードで動作するように制御される。適
応予測/逆予測部11では、ラインメモリ3に記憶され
ている1ライン前の逆予測された画像データと、適応予
測/逆予測部11内部のレジスタに保持されている当該
ラインの逆予測された画像データとから、復号処理部1
5から送られてきた予測誤差データを逆予測して画像デ
ータへの変換を行う。ここで、検出したバウンダリ符号
がPBKラインバウンダリ符号であった時はラインメモ
リ3の出力を強制的に0にして逆予測が行われる。逆予
測して得られた画像データは、画像データ出力部8へ送
ると共に、ラインメモリ制御部9に送られてラインメモ
リ3の内容を更新する。
【0127】検出したバウンダリ符号がRAWラインバ
ウンダリ符号であれば、それに続く符号データは復号処
理部15と適応予測/逆予測部11では何ら処理せず
に、画像データ入出力部8へ送られると共に、ラインメ
モリ制御部9に送られてラインメモリ3の内容を更新す
る。
【0128】検出したバウンダリ符号がRPTラインバ
ウンダリ符号であれば、ラインメモリ制御部9により、
ラインメモリ3の内容を読み出して画像データ入出力部
8へ送る。そのラインの間は復号処理部15と適応予測
/逆予測部11は動作しない。
【0129】画像データ入出力部8は、外部に設けられ
た図示しない画像データ読み出し回路からの制御信号に
よって画像データを画像バス2上に送り出す。このとき
の画像データは、複数画素をまとめて16ビットに整形
されたものである。これを画素単位の画像データに変換
するには、シフトレジスタなどを用いて容易に実現する
ことが出来るので、ここでは説明を行わない。
【0130】上述の実施例では圧縮処理と伸張処理をま
とめているが、それぞれは独立させることも可能であ
る。図21は圧縮処理と伸張処理を独立させた例を示し
た図である。同図(a)は圧縮処理装置を、同図(b)
は伸張処理装置をそれぞれ示している。図中の記号は図
1の実施例との対応をとるために同じものを用いた。
【0131】図2(a)の圧縮処理装置において、画像
データ入出力部8は画像バス2から圧縮すべき画像デー
タの入力のみを行い、適応予測/逆予測部11は適応予
測動作のみを行い、符号データ入出力部7はシステムバ
スに圧縮した結果の符号データの出力のみを行う。同図
(b)の伸張処理装置において、符号データ入出力部7
はシステムバスから伸張すべき符号データの入力のみを
行い、適応予測/逆予測部11は適応逆予測動作のみを
行い、画像データ入出力部8は画像バスに伸張した結果
の画像データの出力のみを行う。
【0132】ここで注目すべき点は、圧縮における前処
理である適応予測と伸張における後処理である適応逆予
測が同一のハードウェアで実現できることである。従っ
て、圧縮処理装置に復号処理部を追加すれば、図1のよ
うな圧縮伸張装置のLSI化が容易に実現できる。
【0133】本発明に係る入力画像データのビット数
は、実施例に示されたものに限定されないことは当然で
ある。重要なことは、1画素Nビットの多階調画像デー
タにおける各ビットの相関を利用してビットプレーン毎
の予測を、使用する予測器を限定することで実現したこ
とである。本発明によって圧縮した画像データは、どの
予測器を使用したかを表す予測器選択モードワードが分
からなければ、符号データを元の画像データに伸張する
ことが出来ない。実施例では伸張動作に先立ち、予測器
選択モードワードを外部CPUから設定するようにした
が、圧縮した結果を符号データとして出力する際に、予
測器選択モードワードをヘッダ情報として最初に付加す
るようにしておけば、伸張時に受け取った符号データの
最初の16ビットワードが予測器選択モードワードであ
るから、それを取り込めば使用する予測器を限定するこ
とが伸張動作の前に可能となる。
【0134】
【発明の効果】以上、説明してきたように本発明によれ
ば、さまざまなビット数の画像データを、複数画素を所
定のビット数のデータにまとめて処理するとともに、画
像データの構造に応じて使用する適応予測器を限定して
適応予測し、符号化するようにしたので、一つの圧縮装
置で二値画像データからNビット自然画像データまで効
率よく圧縮することができるという効果がある。又、画
像データを符号化するための前処理や、復号データを画
像データに変換するための後処理に複雑な演算回路を必
要としないので、高速に圧縮処理や復号処理を行うこと
ができるという効果がある。
【図面の簡単な説明】
【図1】 本発明による圧縮伸張装置の構成を示すブロ
ック図である。
【図2】 データ変換部ブロック図である。
【図3】 テキスト予測器を示す図である。
【図4】 中間調予測器を示す図である。
【図5】 適応予測/逆予測部のブロック図である。
【図6】 中間調予測器選択部を説明する図である。
【図7】 予測器選択モードワードを示す図である。
【図8】 テキスト予測器選択部を説明する図である。
【図9】 符号処理部の符号化手順を示したフローチャ
ートの第1の部分である。
【図10】 符号処理部の符号化手順を示したフローチ
ャートの第2の部分である。
【図11】 符号処理部のブロック図である。
【図12】 符号処理部の動作タイミングを示す図であ
る。
【図13】 16ビットアライメント部のブロック図で
ある。
【図14】 16ビットアライメント部の動作を示した
タイミング図である。
【図15】 圧縮動作時のデータの流れを示す図であ
る。
【図16】 1ラインの処理終了時点での制御部の動作
を説明するフローチャートである。
【図17】 バウンダリ符号の検出処理を説明したフロ
ーチャートである。
【図18】 1ライン内での復号処理を説明するフロー
チャートの第1の部分である。
【図19】 1ライン内での復号処理を説明するフロー
チャートの第2の部分である。
【図20】 復号処理部の動作タイミングを示す図であ
る。
【図21】 圧縮処理と伸張処理を独立させた例を示す
図である。
【符号の説明】
1…システムバス、2…画像バス、3…ラインメモリ、
4,5…ピンポンバッファ、6…制御部、7…符号デー
タ入出力部、8…画像データ入出力部、9…ラインメモ
リ制御部、10…ピンポンバッファ制御部、11…適応
予測/逆予測部、12…16ビットアライメント部、1
2a−1〜12a−8…レジスタ、12b…デマルチプ
レクサ、12c…ALU、12d…アキュムレータ、1
2e…デコーダ、12f…シーケンサ、12g…セレク
タ、12h…レジスタ、13…32ビットアライメント
部、14…符号処理部、14a…セレクタ、14b…レ
ジスタ、14c…ニブルカウンタ、14d…デコーダ、
15…復号処理部、16…データ変換部、17…画像デ
ータ選択制御信号、18…中間調予測器選択部、20…
中間調予測器群、21…newHT選択回路、22…レ
ジスタ、23,24…マルチプレクサ、25…比較器、
26…レジスタ、27…nonHT選択回路、28…テ
キスト予測器群、29…Final選択部、30〜33
…レジスタ、34…マルチプレクサ、35…適応予測
器、36…マルチプレクサ、37…レジスタ、38…マ
ルチプレクサ、40…中間調予測器、41…予測誤差カ
ウンタ、42…最小予測誤差検出回路、43,44…マ
ルチプレクサ、45…レジスタ、50…テキスト予測
器、51…予測誤差カウンタ、52…最小予測誤差検出
回路、53…マルチプレクサ、61,62,64…シフ
トレジスタ、63…マルチプレクサ、81…画像デー
タ、82…ラインメモリの入力データ、83…ラインメ
モリの出力データ、84…ラインバウンダリ符号、85
…符号データ、86…ピンポンバッファAへの出力アド
レス、87…ピンポンバッファBへの出力アドレス、8
8…32ビットアライメント部への入力データ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) H04N 1/41 - 1/419 G06T 9/00

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 1画素N(Nは1以上の整数)ビットの
    画像データを圧縮もしくは伸張する画像圧縮伸張装置に
    おいて、K(Kは2以上の整数)個の画像データをまと
    めてM(Mは2以上の整数)ビットに変換するデータ変
    換手段と、前記データ手段であるMビットの出力を適応
    予測してK個の画像データに対するK個の予測誤差デー
    タに変換もしくはMビットの予測誤差データを適応逆予
    測してK個の予測誤差データに対するK個の画像データ
    に変換する複数個の選択制御可能な予測器を備えた適応
    予測/逆予測部と、予測器を選択制御する予測器選択制
    手段とを具備したことを特徴とする画像圧縮伸張装
    置。
  2. 【請求項2】 前記予測器選択制御手段が画像データの
    ビット数Nに応じて制御されることを特徴とする請求項
    1記載の画像圧縮伸張器。
JP04071336A 1992-03-27 1992-03-27 画像圧縮伸張装置 Expired - Fee Related JP3128014B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04071336A JP3128014B2 (ja) 1992-03-27 1992-03-27 画像圧縮伸張装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04071336A JP3128014B2 (ja) 1992-03-27 1992-03-27 画像圧縮伸張装置

Publications (2)

Publication Number Publication Date
JPH05276390A JPH05276390A (ja) 1993-10-22
JP3128014B2 true JP3128014B2 (ja) 2001-01-29

Family

ID=13457574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04071336A Expired - Fee Related JP3128014B2 (ja) 1992-03-27 1992-03-27 画像圧縮伸張装置

Country Status (1)

Country Link
JP (1) JP3128014B2 (ja)

Also Published As

Publication number Publication date
JPH05276390A (ja) 1993-10-22

Similar Documents

Publication Publication Date Title
JP3332619B2 (ja) 復号装置およびその方法
TW392391B (en) Variable length code detection in a signal processing system
US6014095A (en) Variable length encoding system
JP3928815B2 (ja) Mpeg−2復号方法及びmpeg−2ビデオ復号器
US5162795A (en) Coding and decoding apparatus of variable length data
US6798833B2 (en) Video frame compression/decompression hardware system
JP3227292B2 (ja) 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法
US8306108B2 (en) Adaptive canonical Huffman decoder and method thereof and video decoder
EP1237123A2 (en) Decoding apparatus and method
JP4329238B2 (ja) データストリーム生成装置とその方法、可変長符号化データストリーム生成装置とその方法、カメラシステム
JPH0746141A (ja) データフォーマット変換装置及び方法
US5668547A (en) Runlength coding method and apparatus for use in a video signal encoding system
US5929793A (en) High speed variable length code detection using a cascaded structure
JP3128014B2 (ja) 画像圧縮伸張装置
JP3128016B2 (ja) 画像圧縮装置
JP2842045B2 (ja) データ圧縮装置
JP2002026737A (ja) データ復号化装置とその方法
JP4537089B2 (ja) 可変長復号装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP2000261324A (ja) ハフマン復号化回路
KR0152035B1 (ko) 가변장복호화방법 및 그 장치
JPH0870459A (ja) 画像データ圧縮装置
JP2812064B2 (ja) 画像処理装置
JPH0936749A (ja) 符号化復号化装置およびこれに用いられる符号化方法
JPH07235878A (ja) 可変長復号化器
JP3108243B2 (ja) 符号化及び復号化装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees