JP3679586B2 - 符号化及び復号装置とその符号化及び復号方法 - Google Patents
符号化及び復号装置とその符号化及び復号方法 Download PDFInfo
- Publication number
- JP3679586B2 JP3679586B2 JP35565697A JP35565697A JP3679586B2 JP 3679586 B2 JP3679586 B2 JP 3679586B2 JP 35565697 A JP35565697 A JP 35565697A JP 35565697 A JP35565697 A JP 35565697A JP 3679586 B2 JP3679586 B2 JP 3679586B2
- Authority
- JP
- Japan
- Prior art keywords
- encoding
- decoding
- reference data
- unit image
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、符号化及び復号装置とその符号化及び復号方法に関するものである。
【0002】
【従来の技術】
従来、コンピュータからプリンタ等の画像出力装置に転送された画像データやページ記述言語(以下、PDLと略す)データは該出力装置において描画展開され、描画展開される毎にビットマップデータをプリンタのエンジン部に送っていた。しかし、描画展開する内容が複雑な場合には、該描画展開スピードがエンジン部の描画スピードに追い付かないことがある。この場合には、描画展開後のビットマップデータを一旦メモリ(該メモリをページメモリという)に格納し、ページ単位のすペての描画展開が終了して該ビットマップデータがメモリに格納された後に、該ビットマップデータを先頭から順にプリンタのエンジン部へ送る。
【0003】
ところが、プリント出力する用紙がA3で解像度が600dpiの場合、1画素あたりのビット数が1ビットの2値であっても、全ビットマップのデータ量は8MBにもなり、大容量のメモリはプリンタのコストが高くなる大きな要因であった。
そこで、図1に示すような構成が考えられている。コンピュータから受け取ったデータは、コンピュータからデータを受け取るインターフェース部101、コンピュータから受け取ったデータを一時的に記憶するテンポラリバッファ102、コンピュータから受け取ったデータ描画展開する描画部103、該描画部が描画展開したビットマップデータを書き込むバンドバッファ104、該バンドバッファのビットマップデータを圧縮符号化する符号化部105、該符号化部で圧縮符号化した符号化データを格納するページバッファ106、該ページバッファ中の符号化データを復号する復号部107を番号順に経由して、最後に、復号して得られたビットマップデータをプリント出力するプリンタエンジン部108へ出力される。尚、バンドバッファ104は複数設けて、描画部103の展開処理と符号化部105の符号化処理とを並列に処理することで、処理の高速化を図る。
【0004】
この構成により、圧縮前には8MB必要であったページメモリの容量が1/2〜1/4程度に減少する。そのかわり新たに、バンドバッファ104が必要になり、その分のメモリが増えるが、展開描画する単位(これをバンドという)を1ページの1/16〜1/20にすれば、トータルではメモリの削減効果がでてくる。
【0005】
上記符号化部105の符号化方式としては、コスト削減の要求が強く、ページメモリの容量をなるべく減らすために、任意のビットマップデータ(テキスト、グラフィック、画像等)に対して、圧縮率の最悪値がある一定の値を保証する圧縮方式が望まれる。そのような圧縮方式としては、圧縮対象となるビットマップデータの2次元的な特徴を学習する機能を有するJBIG符号化方式が候補となる。
【0006】
JBIG符号化方式では、予測状態を保持するRAMの内容を更新することで学習を行なう。この学習(RAMの内容の更新)は不定期に発生し、その際メモリへの書き込み動作のために、符号化復号処理の時間が長くなる。逆に、該学習(RAMの内容の更新)をしなくてもよい場合には、符号化復号処理の時間が短くなる。従って、該JBIG方式で符号化データを復号した場合には、該復号部107からのデータ出力レートが一定でなく、該出力をプリンタエンジン部108に直接出力することは出来ない。そこで、図2に示すごとく、復号部107とエンジン部108との間に、FIFO(First In First Out)Memory109を設け、該復号部107から出力するビットマップデータを時間的に平滑化してから、エンジン部108に出力するようにしている。
【0007】
さらに、本発明者は先に同一出願人が出願した特許において、以下の処理方式を提案した。この新たな提案の構成を図3に示す。該提案内容と図2との違いは、以下の2点である。
(1)復号部107で復号したビットマップデータをバンドバッファ104に書き込む。
(2)該バンドバッファ104に書き込まれたビットマップデータを所定のタイミングで、プリンタエンジン108に出力する。
【0008】
上記(1)が処理できるようにデータパス301を設け、上記(2)が処理できるようにデータパス302を設けたのが、構成上の違いである。
機能的には、図2におけるFIFO109で行なっていたビットマップデータを時間的に平滑化する処理を、バンドバッファ104で行なおうとしたところが、図2と異なる。該バンドバッファ104は、図2では描画展開時と符号化時のみ動作していたが、本例では復号時にも動作する。
【0009】
その動作タイミングを図4に示す。説明を簡略化するため、1ページのビットマップデータは6つのバンドに分割されるものとし、上から順にA1,B2,A3,B4,A5,B6と名前を付ける。処理のスループットを上げるため、バンドバッファ104はダブルバッファ構成とし、該2つのバッファをそれぞれバッファA,バッファBとする。
【0010】
バンドバッファに対する描画展開処理はA1,B2,A3,B4,A5,B6の順に行なわれる(図4−a)が、A1,A3,A5はバッファAに、B2,B4,B6はバッファBに、それぞれ展開される。B2の展開が始まる時にはA1の展開が終了しているので、B2の展開と平行してA1の圧縮符号化を行なう(図4−b)。以下、A3の展開と平行してB2の圧縮符号化を行ない、最後にB6の圧縮符号化を行なう。こうして1ページ分のビットマップデータをすペて圧縮符号化し終ると、次は該圧縮データの復号を行なう。
【0011】
復号する順序も、符号化時と同じでA1,B2,A3,B4,A5,B6の順に行なう(図4−c)。復号部107で、復号した1バンド分のビットマップデータA1はまずバッファAに書き込まれる。次に復号した1バンド分のビットマップデータB2はバッファBに書き込まれる。その際、バッファBの書き込みに平行してバッファAからビットマップデータを読み出し、該ビットマップデータをプリンタエンジン部108に送り(図4−d)、1ページのプリントを開始する(図4−e)。
【0012】
以下、復号したビットマップデータA3の書き込みと平行して、B2の読み出しとプリンタエンジン108への転送を行ない、最後にB6の読み出しとプリンタエンジン108への転送を行なう。これにより、1ページ分の全ビットマップデータがプリンタエンジン108に送られ、プリント出力が終了する(図4−e)。
【0013】
上記図1−図3の符号化部105や復号部107で使用される、従来のJBIGの符号化及び復号装置のブロック図を図5に示し、その動作について簡単に説明する。
同図において、501は、JBIGにおける算術演算を行う算術演算部、502は、予測状態を保持する学習RAM、503は、該学習RAM502に格納する予測データを生成するST&MPS生成部、504は、コンテキスト(CX)を入力する端子、505は、メモリクリア時にメモリクリアモード信号を入力する端子、511は、メモリクリア時に学習RAM502のアドレス信号を生成するカウンタ、513は、メモリクリア時に学習RAM502に書き込むゼロデータを生成するデータ生成部、515は、メモリクリア時に学習RAM502に与えるライトパルスを生成するパルス生成部、521,523,525は、それぞれセレクタである。
【0014】
まず、符号化または復号に先立ち、端子505にメモリクリアモード信号(High)を入力して学習RAM502のクリアをおこなう。該信号がHighになると、セレクタ521はカウンタ511を選択し、セレクタ523はデータ生成部513を選択し、セレクタ525はパルス生成部515を選択する。カウンタ511は前記モード信号がLowの間は、ゼロにリセットされており、該モード信号がHighになるとカウントアップ動作を行う。該カウンタの値はセレクタ521を通して、学習RAM502のアドレス端子に与えられ、該学習RAM502のすべてのアドレスをアクセスする。それと同時に、ゼロデータがデータ生成部513からセレクタ523を通して該学習RAM502のデータ入力端子に与えられ、メモリライトパルス信号がパルス生成部515で生成され、セレクタ525を通して該学習RAM502のライトパルス入力端子に与えられる。以上の動作により、該学習RAM502がすペてクリアされると、端子505から入力されるメモリクリアモード信号はLowになる。
【0015】
そして、該学習RAM502のアドレス端子には端子504から入力されるコンテキスト(CX)が、データ入力端子にはST&MPS生成部503で生成されるデータNST(NEXT STATE;次の予測状態)及びNMPS(NEXT MPS;次の優勢シンボル)が、ライトパルス入力端子には算術演算部501内の制御回路で生成されるパルスが、それぞれ入力される。それから符号化または復号動作が開始される。
【0016】
復数の参照画素データがコンテキストとして学習RAM502のアドレス端子に与えられ、該コンテキストに対応する予測状態STや優勢シンボルMPSが読み出される。該情報は算術演算部501に送られ、該情報に基づいて算術演算が行われる。そして、その演算結果に基づいて、学習RAM502の内容を更新するかどうかが判定され、更新する場合にはメモリライトパルス信号がセレクタ525を通して学習RAM502に与えられる。それと同時にST&MPS生成部503にて該学習RAM502に新たに格納するデータNST&NMPSが前記ST&MPSに基づいて生成される。
【0017】
学習RAM502から出力されたST&MPSの内、算術演算部501ではSTがLSZ(劣勢シンボルのサイズ;確率推定値)に変換されて、算術演算に使用される。尚、本例では予測状態STを使って制御を行っているが、学習RAM502にLSZそのものを記憶するようにしても構わない。
図13に従来知られている符号化の処理フローの概略を、図15にJBIGの符号化アルゴリズムの処理”ENCODE”の一般的なフローチャートを示す。以下、図13と図15とを用いて従来の符号化動作を説明する。ここで、Aはインタバルサイズのレジスタ、Cはコードレジスタである。
【0018】
ステップ1900は読み出し処理であり、学習RAM502から符号化画素に対応する予測状態STと予測シンボルMPSの読み出しを行う。読み出し処理の際、入力されるアドレスは、符号化対象画素PIXの周囲の参照画素群から生成した値であり、参照する範囲の形状をテンプレートという。JBIG符号化に用いられるテンプレートの一例を、図14に示す。この例では、2010が符号化対象画素であり、2000から2009までの10個の画素が参照画素群にあたる。これら10個の画素の色を10ビットの2進数に対応させたものを、コンテキストCXという。従って、10ビットのテンプレートの場合、コンテキストの値は0から1023までの1024通りの値を取りうることになる。
【0019】
ステップ1901の確率推定値デコード処理は、ステップ1900において読み出されたSTを、劣勢シンボルの出現確率に比例する確率推定値LSZに変換する。次に、PIX,MPS,LSZを用いて算術演算が行われる。JBIG符号化では、各々のコンテキストごとに決定しているLSZ,MPSを、符号化を行っていく過程で適応的に更新していかなければならない。ステップ1902においては、演算αの結果から、この更新処理を行う必要があるかどうかを判定する。この処理は、図15のステップ2100,2102及び2101a,bの処理の(A−LSZ)の計算部分に対応する。すなわち、更新処理は、PIX=MPXでない場合、あるいは(A−LSZ)の結果が0x8000未満となった場合に、実行される。更新処理が選択されると、ステップ1903で演算β及び書き込み処理を行う。
【0020】
ステップ1903は、更新処理が必要な場合に行う処理であり、学習RAM502への書き込み処理では、当該コンテキストにおける次なる予測状態NST及び、次なるMPSであるNMPSを、学習RAM502に書き込む。書き込むアドレスは、読み出し処理に使用した現処理対象画素のコンテキストである。演算βは、図15のステップ2103a,b、2104a,b、2109の処理に対応し、書き込み処理は、図15のステップ2105〜2108の処理に対応する。更新処理が必要ない場合は、演算βと書き込み処理を行わず、ステップ1904の演算γを行って次の画素の処理に移る。演算γは更新処理が必要ない場合に行う演算であり、図15のステップ2101a,bの処理の(A−LSZ)の結果をAレジスタへ代入する部分に対応する。
【0021】
【発明が解決しようとする課題】
しかしながら、上記従来例の符号化及び復号装置では、符号化及び復号処理に先立って行う学習メモリのクリア処理にある所定の時間が必要なので、図1−図3のようにバンド単位で符号化や復号を行う場合には、各バンド毎に学習RAMのクリアを行うための処理時間が必要となり、バンドデータを連続して符号化処理したり復号処理することが困難となり、処理の高速化の制限となっていた。
【0022】
本発明は、上記従来の欠点を除去し、バンド単位で符号化や復号を行うように学習メモリの頻繁なクリアが必要な場合も、処理の高速化が可能な符号化及び復号装置とその符号化及び復号方法を提供する。
【0023】
【課題を解決するための手段】
この課題を解決するために、本発明の符号化及び復号装置は、所定サイズのN個の単位画像を独立して順次符号化及び復号する符号化及び復号装置であって、n番目(1≦n≦N)の単位画像の符号化及び復号に用いられる第1参照データ群を保持し、該n番目の単位画像中の画素毎の符号化及び復号結果に応じて該第1参照データ群を更新する第1学習メモリであって、前記各単位画像へ使用を開始する前に該第1参照データ群が初期化される第1学習メモリと、n+1番目の単位画像の符号化及び復号に用いられる第2参照データ群を保持し、該n+1番目の単位画像中の画素毎の符号化及び復号結果に応じて該第2参照データ群を更新する第2学習メモリであって、前記各単位画像へ使用を開始する前に該第2参照データ群が初期化される第2学習メモリとを有し、初期化された場合の前記第1及び第2参照データ群を同一の内容とすることを特徴とする。ここで、前記符号化及び復号は予測符号化及び復号である。また、前記符号化及び復号はJBIG符号化及び復号である。また、前記単位画像は1ページの画像を構成するバンド状の画像である。また、前記第1及び第2の学習メモリは略同一の構成である。
【0024】
又、本発明の符号化及び復号方法は、所定サイズのN個の単位画像を独立して順次符号化及び復号する符号化及び復号方法であって、n番目(1≦n≦N)の単位画像の符号化及び復号に用いられる第1参照データ群を保持し、前記各単位画像へ使用を開始する前に該第1参照データ群を初期化し、該n番目の単位画像中の画素毎の符号化及び復号結果に応じて該第1参照データ群を更新する第1学習メモリを用意し、n+1番目の単位画像の符号化及び復号に用いられる第2参照データ群を保持し、前記各単位画像へ使用を開始する前に該第2参照データ群を初期化し、該n+1番目の単位画像中の画素毎の符号化及び復号結果に応じて該第2参照データ群を更新する第2学習メモリを用意し、初期化された場合の前記第1及び第2参照データ群を同一の内容とすることを特徴とする。
【0025】
又、本発明の符号化及び復号装置は、複数個の単位画像を独立して順次符号化及び復号する符号化及び復号装置であって、各単位画像中の画素を符号化及び復号する毎に参照され、該符号化及び復号の結果に応じて更新される参照データ群を保持する学習メモリと、前記学習メモリ内の参照データの各々が、符号化及び復号の対象である単位画像の符号化及び復号の過程内で更新されているか否かを表すデータを保持する更新時期格納メモリとを有し、前記単位画像を符号化及び復号する為に学習メモリから読み出した参照データが、該単位画像の符号化及び復号の過程内で更新されていない場合には、前記学習メモリから読み出した参照データを所定の初期参照データに置き換えることを特徴とする。ここで、前記符号化及び復号はJBIG符号化及び復号である。また、前記単位画像は1ページの画像を構成するバンド状の画像である。
【0026】
又、本発明の符号化及び復号方法は、複数個の単位画像を独立して順次符号化及び復号する符号化及び復号方法であって、各単位画像中の画素を符号化及び復号する毎に参照され、該符号化及び復号の結果に応じて更新される参照データ群を保持する学習メモリを用意し、前記学習メモリ内の参照データの各々が、符号化及び復号の対象である単位画像の符号化及び復号の過程内で更新されているか否かを表すデータを保持する更新時期格納メモリを用意し、前記単位画像を符号化及び復号する為に学習メモリから読み出した参照データが、該単位画像の符号化及び復号の過程内で更新されていない場合には、前記学習メモリから読み出した参照データを所定の初期参照データに置き換えることを特徴とする。
【0027】
【発明の実施の形態】
<第1の実施の形態>
本発明の第1の実施の形態の符号化及び復号装置を図6に示す。本実施の形態においては、同一容量の2つの学習RAMを用いる。
同図において、501〜525までは、前記図5に示した従来例における同一番号と同じ機能を果たすものであるため、説明を省略する。
【0028】
602,621,623,625はそれぞれ502,521,523,525と同じ機能を有するものであり、605はバンドが切り替わるごとにHighとLowとに交互に切り替わるバンド切り替え信号を入力する端子、630は2つの学習RAM502,602の出力を選択するセレクタである。
一番最初の符号化または復号に先立ちバンド切り替え信号をHighにし、不図示のリセット信号により、カウンタ511をゼロにリセットする。そして、従来例のところで述ペたように、学習RAM502をクリアする。このクリア処理には当然、所定の時間がかかる。該クリア処理終了後、前記バンド切り替え信号をLowにして、最初のバンドの符号化または復号処理を行う。該符号化または復号処理をしている間に、別の学習RAM602のクリア処理を前記学習RAM502のクリア処理と同じように行う。
【0029】
1つバンドのデータ量(画素数)は数万〜数十万画素であるのに対して、学習RAMの容量は1024番地しかないため、該クリア処理はすぐ終了してしまう。1つバンドデータをすべて符号化または復号処理したら、バンド切り替え信号をLowからHighに替え、クリア処理済みの学習RAM602を用いて、次のバンドの符号化または復号処理を行う。この時、学習RAM502のクリア処理を行うのは、当然である。
【0030】
以下同様にして、残りのバンドの符号化または復号処理を行う。
<第2の実施の形態>
次に、本発明の第2の実施の形態の符号化及び復号装置を図7に示す。本実施の形態においても、第1の実施の形態と同様、同一容量の2つのメモリを用いる。但し、1つは従来の学習RAMであり、もう1つはバンドシーケンスの番号を記憶するために用いる。
【0031】
同図において、501〜525までは、前記図5に示した従来例における同一番号と同じ機能を果たすものであるため、説明を省略する。
701は、これまでにいくつのバンドを処理したかを示すバンドシーケンス番号を生成するための8ビットのカウンタ、702は、該シーケンス番号を格納するためのバンドシーケンス格納メモリで、容量的には上記のごとく、学習RAM502と同じである。704は、該バンドシーケンス格納メモリ702から読み出した値と前記カウンタ701の出力値とが等しいかどうかを検出する一致検出回路、706は、該一致検出回路704の検出結果に基づいて、学習RAM502の出力をマスクするマスク回路である。
【0032】
最初のメモリクリアの方法は、従来例に近く、まず、符号化または復号に先立ち端子505にメモリクリアモード信号(High)を入力して、学習RAM502のクリアをおこなう。該信号がHighになると、セレクタ521はカウンタ511を選択し、セレクタ523はデータ生成部513を選択し、セレクタ525はパルス生成部515を選択する。カウンタ511は前記モード信号がLowの間は、ゼロにリセットされており、該モード信号がHighになるとカウントアップ動作を行う。該カウンタの値はセレクタ521を通して、学習RAM502とバンドシーケンス格納メモリ702とのアドレス端子に与えられ、該2つメモリのすべてのアドレスをアクセスする。
【0033】
それと同時に、ゼロデータがデータ生成部513からセレクタ523を通して該学習RAM502のデータ入力端子に与えられ、一方、不図示のリセット信号によってゼロにクリアされたカウンタ701の出力値がバンドシーケンス格納メモリ702のデータ入力端子に与えられる。そして、メモリライトパルス信号がパルス生成部515で生成され、セレクタ525を適して該学習RAM502とバンドシーケンス格納メモリ702のライトパルス入力端子に与えられる。
【0034】
以上の動作により、該学習RAM502とバンドシーケンス格納メモリ702とがすべてクリアされると、一番最初のメモリクリア処理は終了し、端子505から入力されるメモリクリアモード信号はLowになる。
本実施の形態の特徴は、これ以降のメモリクリアの方法にある。簡潔にその内容を表現すると、
(1)実際のメモリクリア処理は最初の1回行うだけで、その後はクリア処理をしない。
(2)見かけ上のクリア処理は、マスク回路706で学習RAM502からの出力をゼロにマスクすることで行う。
(3)処理するバンドが変わってから初めてアクセスされるアドレスでは、該アドレスで読み出されるシーケンス番号(メモリ702の出力)と、カウンタ701の出力値(これはバンドが変わった時にカウントアップしている)とが一致しないので、一致検出回路704の出力はゼロとなり、上記(2)のように処理される。
(4)n番目のバンドのあるアドレスで1度学習RAM502の更新が行なわれると、該アドレスにおけるバンドシーケンス格納メモリ702の内容がカウンタ701の値に書き換えられるので、それ以降における該アドレスの学習RAM502の出力はマスクされずに有効となる。
【0035】
JBIGにおける学習RAM502の容量は1024番地×8ビットであり、メモリ702も該容量と同じであるため、バンドシーケンス番号が255以内に収まっていれば、本実施の形態はまったく問題なく、上述のごとく実際のメモリクリア処理は最初の1回行うだけで、その後はクリア処理をしなくても見かけ上クリアがなされているように見える。
【0036】
本実施の形態は以下に述べる応用が可能である。
バンドシーケンス番号が必ず(2^n−1)以下になる場合には、カウンタ701はnビット、バンドシーケンス格納メモリ702のビット幅もnビットで済む。ここで、バンドシーケンス番号について少し述べる。1ページのデータを例えば16個のバンドに分割し、各バンドを順番に処理し、1バンドにつき1回しか処理しなければ、バンドシーケンス番号は0から始まって15で終る。しかし、同じ16個のバンドへの分割でも、一度符号化したビットマップデータを上書きのために一旦復号して、上書き後に再度符号化するような処理をおこなうと、バンドシーケンス番号は15以内に収まらない。この場合は、例えば該番号の上限を63に制限して前記カウンタ及びメモリのビット幅を6ビットにするということも1つの方法である。
【0037】
<第3の実施の形態>
本発明の第3の実施の形態の符号化及び復号装置について述べる。
前記第2の実施の形態の最後で述べたように、1ページのバンドの個数よりもバンドシーケンス番号が大きくなる場合がある。しかし、符号化時と復号時で事情は大きく異なる。符号化時は前述のように上書き処理を行うとバンドシーケンス番号はいくらでも大きくなりうる。しかし、バンドの替わり目で該符号化処理を少しの間停止し、学習メモリ等のクリア処理を行うことが可能である(尚、上書きの前に行う復号処理は、上記符号化処理に含まれる)。
【0038】
それに対して、復号処理(LBP等の画像出力エンジンに復号データを出力する場合)では、1ページの一番最初のバンドから順番に復号処理するため、各バンドは1度しか処理しない。よって、バンドの個数に対応して、シーケンス番号の最大値が確定する。ところが、復号処理は、復号データの出力先が画像出力エンジンであるため、該復号処理をメモリクリアの都合で停止することは出来ない。
【0039】
従って、復号処理がとどこおることのないよう、1ページのバンドの個数に合わせて、前記カウンタ701及びバンドシーケンス格納メモリ702のビット幅を設定する。これにより、該格納メモリの容量を必要最小限にすることができる。符号化時には、バンドシーケンス番号が前記カウンタ701を容易に超すことが想像される。この場合、カウンタ701のビット数をnビットとすれば、2n個のバンドを処理するごとに該符号化処理を少しの間停止して学習メモリ等のクリア処理を行うことで、符号化処理にも対応する。
【0040】
本実施の形態の符号化及び復号装置を表すブロック図は、前記第2の実施の形態を表す図7とほとんど同じであり、カウンタ701とバンドシーケンス格納メモリ702の入出力データのバス幅が、変わるだけである。
処理タイミング上は少し違いがあり、符号化時の学習RAM等のメモリをクリアする回数が複数回になる。それを図8に示す。
【0041】
<第4の実施の形態>
本発明の第4の実施の形態の符号化及び復号装置のブロック図を図9に示す。該ブロック図は、前記第3の実施の形態とほとんど同じである。しかし、本実施の形態では学習メモリ等のクリア処理を行う時に、上記符号化処理を少しの間停止するといったことはせずに、連続して符号化処理ができるようにした。
【0042】
そのために、前記学習メモリ等のクリア処理を上記符号化処理とほぼ平行して行うことができるよう、学習RAM502から読み出してマスク回路706を通したデータを直接該学習RAM502に書き込めるよう、該データを保持することができるレジスタ801と該データを直接学習RAM502に入力できるようセレクタ803、並びに該セレクタ制御信号の入力端子805を設けた。
【0043】
一般的に、LBP等の画像出力エンジンは、主走査1ラインのデータを連続して転送しなければならないが、該ラインとラインとの間には若干の休止期間がある。その休止期間内に、前記学習RAM502の読み出しと書き込みを少しずつ行ない、2^nバンド期間内にすペてのアドレスを一通りアクセスし、前記バンドシーケンス格納メモリ702を書き換えることにより、学習RAM502を見かけ上クリアする。
【0044】
図10に本実施の形態の処理のタイミングチャートの例を示す。例えば、n=6,2^n=64とすると、学習RAM502の16m番地〜16m+15番地は、バンドシーケンス番号mで読み出しと書き込みを行う。
ここで、学習RAM502の6番地と87番地がバンドシーケンス番号3でアクセス(メモリ更新)されたとする。この時、バンドシーケンス格納メモリ702の6番地と87番地には、該バンドシーケンス番号3が格納される。この学習RAM502の内容は、該バンドシーケンス番号が3の間はずっと有効である。ところが、処理するバンドが替わって、バンドシーケンス番号及びカウンタ701の出力が4になると、6番地と87番地の学習RAM502の内容は、マスク回路706でゼロにマスクされ、見かけ上クリアされたようになる。
【0045】
やがて、バンドシーケンス番号が5になると、該87番地の値が読み出され、マスク回路706でゼロにマスクされて書き込まれるので、本当に該番地のデータはゼロクリアされる。一方、6番地の学習RAM502の内容はまだクリアされないが、マスク回路706でゼロにマスクされるので、見かけ上はクリアされているような状態が続く。さらに処理が進んでゆき、バンドシーケンス番号が64(これはバンドシーケンス番号0と等価)になると、該学習RAM502の6番地の内容も本当にゼロクリアされる。
【0046】
上記のように、エンジンへの主走査単位のデータ転送の間に生じるわずかなデータ停止期間を利用して、学習RAMの内容をクリアする本実施の形態の方法は、復号時において特に有効なクリア方法であり、該方法を復号時に用い、符号化時には、前記第3の実施の形態の方法を用いるのも一つの方法である。
<第5の実施の形態>
本発明の第5の実施の形態の符号化及び復号装置のブロック図を図11に示す。
【0047】
本実施の形態ではバンドシーケンス格納メモリ702のビット幅を1ビットとし、実施の形態2〜4で使用していたカウンタ701の替わりに、バンドごとに出力値が反転するフラグ1001を用い、一致検出回路としてEXNOR(exclusive-NOR)1003を用いる。
本実施の形態は、前記第4の実施の形態においてn=1とした場合であり、そういう意味では、前記第4の実施の形態とはとんど同じであるが、n=1の場合には付加すべきハードウェアの規模が最小になるため、これについて詳しく述ベるのは重要なことである。
【0048】
まず、符号化時について述ペる。上述の実施の形態で述べたように、n=1の場合には、2バンドおきに符号化処理を停止し、学習RAM等のメモリのクリアを行うことができる。しかし、2バンドおきに符号化処理を停止するのは中途半端だと思えば、1バンドおきに符号化処理を停止し、毎バンドごとに学習RAM等のメモリのクリアを行なってもよい。
【0049】
次に、復号時について述べる。復号処理に先立ち、まず、学習RAM等のメモリをすべてクリアする。そして、最初のバンドの復号処理を行う。この時、フラグ1001の値は“0”である。最初のバンドの処理は、前記メモリのクリアが行われているおかげで、他には何もすることはない。次のバンドになると、フラグ1001の出力は“1”になる。これによりEXNOR1003の出力は“0”となり、学習RAMは見かけ上クリアされたことになる。しかし、次のバンドに替わって、該フラグの出力が“0”に戻るとクリアされたはずの学習RAMの内容が復活してしまうので、該フラグの出力が“1”の間に、本当に該学習RAM502をクリアする必要がある。
【0050】
ここで、1バンドの主走査のライン数が256だとすると、前述のエンジンへのデータ転送休止期間に4つのアドレスからデータを読み出し書き込む動作を行なうことができれば、1バンドの間に1024番地すべての学習RAM502の内容を、該バンドで有効なデータを保存しながら無効なデータをクリアすることができる。該クリア処理は、上記バンド以降、バンドが替わるたびに行う。
【0051】
また、該クリア処理のため学習RAM502からデータを読み出した時に、既に該バンドで学習RAMの更新がなされたアドレスでは、EXNOR1003の出力が“1”になるため、該出力に基づいて書き込み動作を省略してもよい。
<第6の実施の形態>
本発明の第6の実施の形態の符号化及び復号装置のブロック図を図12に示す。本実施の形態は、前記第5の実施の形態を応用したものである。
【0052】
これまで述べた実施の形態におけるバンドシーケンス格納メモリには、1つの番地には1つのデータしか格納していなかったが、本実施の形態では、1つの番地に複数のデータを格納し、その分、該メモリのアドレス空間を小さくして、該メモリの全アドレス空間のアクセスを高速化したものである。
図12に示した例は、該バンドシーケンス格納メモリ1101を128番地×8ビットで構成した場合である(前記第5の実施の形態では、1024番地×1ビットというメモリ構成であった)。よって、該バンドシーケンス格納メモリ1101に入力するアドレス信号はこれまでの10ビットから7ビットになり、残りの3ビットは該バンドシーケンス格納メモリ1101から読み出した8ビットのデータから1ビットを選択するセレクタ1103及びデコーダ1104に入力される。該デコーダ1104は、該バンドシーケンス格納メモリ1101に入力する8ビットデータの各々に設けられているセレクタ1111〜1118の内、対応するセレクタのみをフラグ1001の出力端子に切り替え、その他のセレクタは該バンドシーケンス格納メモリ1101の出力を選択するような信号を生成する。バンドシーケンス格納メモリ1101の出力を選択するということは、前のデータを保持するということである。
【0053】
アドレスが7ビットになったのに対応して、該7ビットのアドレス信号のみを切り替えるセレクタ1105や、該7ビットのアドレス信号を(メモリクリア時に)発生するカウンタ1107が付加され、余分なものが除去されている。
本実施の形態の特徴は、上記バンドシーケンス格納メモリ1101の構成以外に、学習RAM502の扱い方にある。すなわち、本実施の形態では、メモリクリア動作において、該学習RAM502へのデータの書き込みを一切行わない。もちろん、一番最初の初期化時にゼロクリアするのはかまわないが、それすら不要である。
【0054】
以下に、その動作原理について説明する。
本実施の形態のクリア動作の基本は、フラグ1001の値がバンドの替わり目で反転する直前に、該フラグ1001の値をバンドシーケンス格納メモリ1101のすべてのアドレスに格納することである。そうすることで、該フラグ1001の値が変わった場合は、バンドシーケンス格納メモリ1101の全アドレスにおける内容はフラグ1101の値と異なることになるため、見かけ上学習RAM502はすペてクリアされていることになる。
【0055】
該処理はフラグ1001が反転するたび、すなわち、バンドが切り替わるたびに必要であるが、これまでに比べ該処理は8分の1の処理時間で済み、バンドシーケンス格納メモリ1101のビット数を増やしてアドレスを減らせば、さらに短くすることが可能である。本実施の形態がすべての場合に適用できるわけではないが、上記格納処理をバンド毎に行うことが出来るような場合には、大変有効であるといえる。
【0056】
なお、本発明は、JBIG符号化復号処理に限定されるものではなく、一般的に学習機能を有し、かつ該学習内容を定期的にリフレッシュあるいは、クリアする手段として有効な方法である。
なお、本発明は、複数の機器(例えばホストコンピュータ,インタフェイス機器,リーダ,プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用してもよい。
【0057】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0058】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0059】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0060】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0061】
【発明の効果】
本発明により、バンド単位で符号化や復号を行うように学習メモリの頻繁なクリアが必要な場合も、処理の高速化が可能な符号化及び復号装置とその符号化及び復号方法を提供できる。
すなわち、JBIG符号化復号処理に先立って行う学習メモリのクリア処理に、ある所定の時間が必要であり、バンド単位で符号化復号を行う場合には、各バンド毎に該学習RAMのクリアを行うための処理時間が必要であり、バンドデータを連続して符号化復号処理することが従来は困難であった。そこで、本発明では、まず第1に、学習RAMを2組持ち、一方を使用中にもう一方をクリアすることで、従来の問題点を解決した。第2に、学習RAMの各アドレス毎にバンドシーケンス番号を格納するバンドシーケンス格納メモリと、バンドが変わるごとにカウントアップ動作するカウンタと、上記シーケンスとカウンタ値が一致しているかどうかを検出する一致検出手段と、該一致検出手段の出力に基づき、読み出した学習RAMの内容をマスクする手段とを設けることにより、前述の学習RAMのクリア動作を見かけ上、一瞬で行えるようにすることで、従来の問題点を解決した。
【0062】
以上により、従来、バンド毎に学習RAMのクリアを行うための処理時間がない場合にも、きちんと該学習RAMのクリアを行うことができるようになった。
【図面の簡単な説明】
【図1】符号化及び復号処理を導入してページメモリの削減を図った画像処理装置の構成例を示す図である。
【図2】図1の復号部とエンジン部の間に復号部から出力するビットマップデータを時間的に平滑化するためのFIFOを設けた場合の構成例を示す図である。
【図3】図1で復号部からバンドバッファ部ヘビットマップデータを出力するパスを設けた画像処理装置の構成例を示す図である。
【図4】図3の画像処理装置における描画展開と圧縮伸張処理のタイミングを示す図である。
【図5】従来のJBIG符号化及び復号装置の構成例を示すブロック図である。
【図6】本発明の第1の実施の形態の符号化及び復号装置の構成例を示すブロック図である。
【図7】本発明の第2の実施の形態の符号化及び復号装置の構成例を示すブロック図である。
【図8】本発明の第3の実施の形態の動作を示すタイミングチャート図である。
【図9】本発明の第4の実施の形態の符号化及び復号装置の構成例を示すブロック図である。
【図10】本発明の第4の実施の形態の動作を示すタイミングチャート図である。
【図11】本発明の第5の実施の形態の符号化及び復号装置の構成例を示すブロック図である。
【図12】本発明の第6の実施の形態の符号化及び復号装置の構成例を示すブロック図である。
【図13】従来例の動作手順の概略を示すフローチャートである。
【図14】テンプレートの構成例を示す図である。
【図15】JBIGの符号化アルゴリズムの処理”ENCODE”の一般的なフローチャートである。
Claims (10)
- 所定サイズのN個の単位画像を独立して順次符号化及び復号する符号化及び復号装置であって、
n番目(1≦n≦N)の単位画像の符号化及び復号に用いられる第1参照データ群を保持し、該n番目の単位画像中の画素毎の符号化及び復号結果に応じて該第1参照データ群を更新する第1学習メモリであって、前記各単位画像へ使用を開始する前に該第1参照データ群が初期化される第1学習メモリと、
n+1番目の単位画像の符号化及び復号に用いられる第2参照データ群を保持し、該n+1番目の単位画像中の画素毎の符号化及び復号結果に応じて該第2参照データ群を更新する第2学習メモリであって、前記各単位画像へ使用を開始する前に該第2参照データ群が初期化される第2学習メモリとを有し、
初期化された場合の前記第1及び第2参照データ群を同一の内容とすることを特徴とする符号化及び復号装置。 - 前記符号化及び復号は予測符号化及び復号であることを特徴とする請求項1記載の符号化及び復号装置。
- 前記符号化及び復号はJBIG符号化及び復号であることを特徴とする請求項1記載の符号化及び復号装置。
- 前記単位画像は1ページの画像を構成するバンド状の画像であることを特徴とする請求項1記載の符号化及び復号装置。
- 前記第1及び第2の学習メモリは略同一の構成であることを特徴とする請求項1記載の符号化及び復号装置。
- 所定サイズのN個の単位画像を独立して順次符号化及び復号する符号化及び復号方法であって、
n番目(1≦n≦N)の単位画像の符号化及び復号に用いられる第1参照データ群を保持し、前記各単位画像へ使用を開始する前に該第1参照データ群を初期化し、該n番目の単位画像中の画素毎の符号化及び復号結果に応じて該第1参照データ群を更新する第1学習メモリを用意し、
n+1番目の単位画像の符号化及び復号に用いられる第2参照データ群を保持し、前記各単位画像へ使用を開始する前に該第2参照データ群を初期化し、該n+1番目の単位画像中の画素毎の符号化及び復号結果に応じて該第2参照データ群を更新する第2学習メモリを用意し、
初期化された場合の前記第1及び第2参照データ群を同一の内容とすることを特徴とする符号化及び復号方法。 - 複数個の単位画像を独立して順次符号化及び復号する符号化及び復号装置であって、
各単位画像中の画素を符号化及び復号する毎に参照され、該符号化及び復号の結果に応じて更新される参照データ群を保持する学習メモリと、
前記学習メモリ内の参照データの各々が、符号化及び復号の対象である単位画像の符号化及び復号の過程内で更新されているか否かを表すデータを保持する更新時期格納メモリとを有し、
前記単位画像を符号化及び復号する為に学習メモリから読み出した参照データが、該単位画像の符号化及び復号の過程内で更新されていない場合には、前記学習メモリから読み出した参照データを所定の初期参照データに置き換えることを特徴とする符号化及び復号装置。 - 前記符号化及び復号はJBIG符号化及び復号であることを特徴とする請求項7記載の符号化及び復号装置。
- 前記単位画像は1ページの画像を構成するバンド状の画像であることを特徴とする請求項7記載の符号化及び復号装置。
- 複数個の単位画像を独立して順次符号化及び復号する符号化及び復号方法であって、
各単位画像中の画素を符号化及び復号する毎に参照され、該符号化及び復号の結果に応じて更新される参照データ群を保持する学習メモリを用意し、
前記学習メモリ内の参照データの各々が、符号化及び復号の対象である単位画像の符号化及び復号の過程内で更新されているか否かを表すデータを保持する更新時期格納メモリを用意し、
前記単位画像を符号化及び復号する為に学習メモリから読み出した参照データが、該単位画像の符号化及び復号の過程内で更新されていない場合には、前記学習メモリから読み出した参照データを所定の初期参照データに置き換えることを特徴とする符号化及び復号方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35565697A JP3679586B2 (ja) | 1997-12-24 | 1997-12-24 | 符号化及び復号装置とその符号化及び復号方法 |
US09/218,631 US6473530B2 (en) | 1997-12-24 | 1998-12-22 | Encoding and decoding apparatuses and image processing apparatus using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35565697A JP3679586B2 (ja) | 1997-12-24 | 1997-12-24 | 符号化及び復号装置とその符号化及び復号方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11187276A JPH11187276A (ja) | 1999-07-09 |
JP3679586B2 true JP3679586B2 (ja) | 2005-08-03 |
Family
ID=18445099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35565697A Expired - Fee Related JP3679586B2 (ja) | 1997-12-24 | 1997-12-24 | 符号化及び復号装置とその符号化及び復号方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6473530B2 (ja) |
JP (1) | JP3679586B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002204356A (ja) * | 2000-10-27 | 2002-07-19 | Canon Inc | データ処理装置、プロセッサ、及びその制御方法 |
US6987587B2 (en) * | 2001-09-19 | 2006-01-17 | Kabushiki Kaisha Toshiba | Multiple recognition image processing apparatus |
JP4227441B2 (ja) * | 2003-03-10 | 2009-02-18 | キヤノン株式会社 | データ圧縮方法およびプロセッサ |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748786A (en) * | 1994-09-21 | 1998-05-05 | Ricoh Company, Ltd. | Apparatus for compression using reversible embedded wavelets |
US5966465A (en) * | 1994-09-21 | 1999-10-12 | Ricoh Corporation | Compression/decompression using reversible embedded wavelets |
US5867602A (en) * | 1994-09-21 | 1999-02-02 | Ricoh Corporation | Reversible wavelet transform and embedded codestream manipulation |
US6195465B1 (en) * | 1994-09-21 | 2001-02-27 | Ricoh Company, Ltd. | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream |
US5881176A (en) * | 1994-09-21 | 1999-03-09 | Ricoh Corporation | Compression and decompression with wavelet style and binary style including quantization by device-dependent parser |
US6141446A (en) * | 1994-09-21 | 2000-10-31 | Ricoh Company, Ltd. | Compression and decompression system with reversible wavelets and lossy reconstruction |
US6044172A (en) * | 1997-12-22 | 2000-03-28 | Ricoh Company Ltd. | Method and apparatus for reversible color conversion |
-
1997
- 1997-12-24 JP JP35565697A patent/JP3679586B2/ja not_active Expired - Fee Related
-
1998
- 1998-12-22 US US09/218,631 patent/US6473530B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20020090137A1 (en) | 2002-07-11 |
JPH11187276A (ja) | 1999-07-09 |
US6473530B2 (en) | 2002-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4366408B2 (ja) | グラフィック画像の圧縮システムおよび方法 | |
US7236636B2 (en) | Image compression method, image restoration method, program and apparatus | |
US5245441A (en) | Document imaging processing method and apparatus | |
JP2000115783A (ja) | 復号化装置及び方法 | |
US5848194A (en) | Coding/decoding apparatus and coding/decoding method | |
US20060233444A1 (en) | JBIG coding apparatus and method with low cost, high-performance ping-pong buffer arrangement | |
JP3844808B2 (ja) | 遅延型のアンチエイリアシングのための符号化方法 | |
JP2830690B2 (ja) | 画像処理装置 | |
JP3679586B2 (ja) | 符号化及び復号装置とその符号化及び復号方法 | |
JP4009808B2 (ja) | 画像処理装置 | |
US6763150B1 (en) | Image processing system with multiple processing units | |
JP3772407B2 (ja) | 画像処理装置 | |
JP2002077637A (ja) | 画像符号化装置及び画像符号化方法 | |
JP2001157062A (ja) | 画像処理装置 | |
JP3235510B2 (ja) | 符号化方法及び符号化装置、復号化方法及び復号化装置 | |
JP3382492B2 (ja) | 画像処理装置及び方法 | |
JP3683667B2 (ja) | プリンタコントローラ | |
JP2001292328A (ja) | 予測符号・復号化装置 | |
JP3705771B2 (ja) | Jbig復号化方法 | |
KR100197075B1 (ko) | 압축 데이타 복원 장치 | |
JP4373463B2 (ja) | 符号化装置及び復号化装置 | |
JPH09258940A (ja) | カラーイメージデータ転送方式 | |
JPH1044530A (ja) | 印刷制御装置、情報処理装置、印刷装置および印刷情報処理方法 | |
JP2020048041A (ja) | 画像伸長装置及びその制御方法及びプログラム | |
JP2001150739A (ja) | 印刷データ生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050415 |
|
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: 20050422 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050513 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090520 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100520 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100520 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110520 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120520 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120520 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130520 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140520 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |