首页 / 专利库 / 电脑编程 / 临时别名 / Method for processing data compression, its device and computer readable memory

Method for processing data compression, its device and computer readable memory

阅读:952发布:2020-07-13

专利汇可以提供Method for processing data compression, its device and computer readable memory专利检索,专利查询,专利分析的服务。并且PROBLEM TO BE SOLVED: To efficiently compress data and to improve its processing speed by compressing input data based on a first compressing method and compressing data which is compressed by means of the first compressing method based on the second compressing method through the use of compression informatioin which is obtained from the compression processing. SOLUTION: The redundant degree of input data is inspected in input order by byte unit, data is compressed in accordance with its run-length and also the frequency distribution of run-length is obtained. After the compression processing in input data against whole data is finished, its compression degree is checked. Unless a prescribed compression rate is obtained, a code with a short data length is assigned in order from the highest frequency order based on the frequency distribution of the run-length so as to execute alias encoding. A frequency distribution table (TABNLE) 308 is changed at the time of storing compression data in a compression data temporary storage area (TEMPCMPR) 310.,下面是Method for processing data compression, its device and computer readable memory专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】 データを入力する入力手段と、 第1の圧縮方法に基づいて前記入力手段によって入力されたデータの圧縮を行なう第1の圧縮手段と、 前記第1の圧縮手段における圧縮処理から得られる圧縮情報を用い、第2の圧縮方法に基づいて、前記第1の圧縮手段によって圧縮されたデータの圧縮を行なう第2の圧縮手段とを有することを特徴とするデータ圧縮処理装置。
  • 【請求項2】 前記第1の圧縮手段は、ランレングス圧縮方法に基づいて、前記入力手段によって入力されたバイト単位のデータを圧縮することを特徴とする請求項1
    記載のデータ圧縮処理装置。
  • 【請求項3】 前記圧縮情報は、ランレングス頻度分布であることを特徴とする請求項2に記載のデータ圧縮処理装置。
  • 【請求項4】 前記第2の圧縮手段は、可変長符号化を行なうことを特徴とする請求項3に記載のデータ圧縮処理装置。
  • 【請求項5】 前記可変長符号化の方法にはエリアス符号化を含み、 前記第2の圧縮手段は、前記ランレングス頻度分布に基づいて、前記第1の圧縮手段によって圧縮されたデータの内、頻度の高い順に、短いデータ長のエリアス符号を割り付ける割り付け手段を含むことを特徴とする請求項4に記載のデータ圧縮処理装置。
  • 【請求項6】 前記第1の圧縮手段によって圧縮されたデータの圧縮率を調べる圧縮検証手段と、 前記圧縮検証手段による検証結果に基づいて、前記第2
    の圧縮手段の実行を制御する制御手段とをさらに有することを特徴とする請求項1に記載のデータ圧縮処理装置。
  • 【請求項7】 前記入力手段に入力されるデータは外部装置から転送されるプリント情報に基づいて生成された画像データであることを特徴とする請求項1に記載のデータ圧縮処理装置。
  • 【請求項8】 データを入力する入力工程と、 第1の圧縮方法に基づいて前記入力工程において入力されたデータの圧縮を行なう第1の圧縮工程と、 前記第1の圧縮工程における圧縮処理から得られる圧縮情報を用い、第2の圧縮方法に基づいて、前記第1の圧縮工程において圧縮されたデータの圧縮を行なう第2の圧縮工程とを有することを特徴とするデータ圧縮処理方法。
  • 【請求項9】 前記第1の圧縮方法にはランレングス圧縮法を含み、 前記第2の圧縮方法にはエリアス符号によって表現される可変長符号化を含み、 前記圧縮情報にはランレングス頻度分布を含むことを特徴とする請求項8に記載のデータ圧縮処理方法。
  • 【請求項10】 データ圧縮処理を実行するプログラムコードを含むコンピュータ可読メモリであって、 データを入力する入力処理を実行するコードと、 第1の圧縮方法に基づいて前記入力処理において入力されたデータの圧縮を行なう第1の圧縮処理を実行するコードと、 前記第1の圧縮処理における圧縮処理から得られる圧縮情報を用い、第2の圧縮方法に基づいて、前記第1の圧縮処理によって圧縮されたデータの圧縮を行なう第2の圧縮処理を実行するコードとを有することを特徴とするコンピュータ可読メモリ。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【発明の属する技術分野】本発明はデータ圧縮処理方法及びその装置及びコンピュータ可読メモリに関し、特に、画像データ等の入データを圧縮するデータ圧縮処理方法及びその装置及びコンピュータ可読メモリに関する。

    【0002】

    【従来の技術】従来、印刷装置等に圧縮回路や圧縮機能を備える際、所望の圧縮率が得られない場合には、特開平4−323060号公報や特開平6−233141号公報等に開示されているように、複数の圧縮回路や圧縮機能を適宜切り替えて用いることにより所望の圧縮率を得る方法が提案されている。 また、このような圧縮回路や機能切り替えでは所望の圧縮率が得られない場合には、第1の圧縮回路で圧縮した同じ画像データを圧縮アルゴリズムの異なる第2の圧縮回路で圧縮する方法も提案されている。

    【0003】

    【発明が解決しようとする課題】しかしながら上記従来例では、第1の圧縮回路で画像データを圧縮して所望の圧縮率が得られないために第2の圧縮回路を用いる場合、その圧縮処理は全く初めの画像データからの再圧縮となるので、2つの回路における圧縮処理時間を加算したに等しい圧縮処理時間が必要となり、所望の圧縮率を得るために時間がかかるという問題があった。

    【0004】本発明は上記従来例に鑑みてなされたもので、短い処理時間で所望の圧縮率を得ることができるデータ圧縮処理方法及びその装置及びコンピュータ可読メモリを提供することを目的としている。

    【0005】

    【課題を解決するための手段】上記目的を達成するために本発明のデータ処理方法は、次のような工程からなる。

    【0006】即ち、データを入力する入力工程と、第1
    の圧縮方法に基づいて前記入力工程において入力されたデータの圧縮を行なう第1の圧縮工程と、前記第1の圧縮工程における圧縮処理から得られる圧縮情報を用い、
    第2の圧縮方法に基づいて、前記第1の圧縮工程において圧縮されたデータの圧縮を行なう第2の圧縮工程とを有することを特徴とするデータ圧縮処理方法を備える。

    【0007】ここで、第1の圧縮方法にはランレングス圧縮法を含み、第2の圧縮方法にはエリアス符号によって表現される可変長符号化を含み、圧縮情報にはランレングス頻度分布を含むと良い。

    【0008】また他の発明によれば、データを入力する入力手段と、第1の圧縮方法に基づいて前記入力手段によって入力されたデータの圧縮を行なう第1の圧縮手段と、前記第1の圧縮手段における圧縮処理から得られる圧縮情報を用い、第2の圧縮方法に基づいて、前記第1
    の圧縮手段によって圧縮されたデータの圧縮を行なう第2の圧縮手段とを有することを特徴とするデータ圧縮処理装置を備える。

    【0009】ここで、第1の圧縮手段は、ランレングス圧縮方法に基づいて、入力手段によって入力されたバイト単位のデータを圧縮することができる。 このとき、前記圧縮情報は、ランレングス頻度分布である。 また、第2の圧縮手段は、例えば、エリアス符号化などの可変長符号化を行なうが、その符号化実行時には、ランレングス頻度分布に基づいて、第1の圧縮手段によって圧縮されたデータの内、頻度の高い順に、短いデータ長のエリアス符号を割り付けると良い。

    【0010】さらに、第1の圧縮手段によって圧縮されたデータの圧縮率を調べ、その検証結果に基づいて、第2の圧縮手段の実行を制御すると良い。

    【0011】なお、入力手段に入力されるデータは外部装置から転送されるプリント情報に基づいて生成された画像データであっても良い。

    【0012】さらに他の発明によれば、データ圧縮処理を実行するプログラムコードを含むコンピュータ可読メモリであって、データを入力する入力処理を実行するコードと、第1の圧縮方法に基づいて前記入力処理において入力されたデータの圧縮を行なう第1の圧縮処理を実行するコードと、前記第1の圧縮処理における圧縮処理から得られる圧縮情報を用い、第2の圧縮方法に基づいて、前記第1の圧縮処理によって圧縮されたデータの圧縮を行なう第2の圧縮処理を実行するコードとを有することを特徴とするコンピュータ可読メモリを備える。

    【0013】以上の構成により本発明は、データを入力し、第1の圧縮方法に基づいて入力データの圧縮を行ない、その圧縮処理から得られる圧縮情報を用い、第2の圧縮方法に基づいて、第1の圧縮方法によって圧縮されたデータの圧縮を行なうよう動作する。

    【0014】これにより、第2の圧縮手段が、例えば、
    ランレングス頻度分布を利用する圧縮を行なうものである場合、第1の圧縮手段を用いて圧縮を行う際にその頻度分布集計を同時に行うようにすれぱ、第1の圧縮手段による処理時間は多少長くなるものの、第2の圧縮処理時間を飛躍的に向上させることが可能になり、全体の処理速度が向上する。

    【0015】

    【発明の実施の形態】以下添付図面を参照して本発明の好適な実施形態について詳細に説明する。

    【0016】図1は本発明の代表的な実施形態である電子写真方式を採用して記録を行なうプリンタエンジンを含んだレーザビームプリンタ(LBP)の内部構造を示す側断面図である。 このLBPは、例えば、ホストコンピュータ(以下、ホストという)などのデータ発生源(不図示)からの文字パターンの登録や定型書式(フォームデータ)などの登録が行える。

    【0017】図1において、100はレーザビームプリンタ(LBP)であり、ホストから供給される文字パターン、文字情報(文字コード)、フォーム情報、或は、
    マクロ命令などを入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターンなどを作成し、記録媒体である記録紙上に像を形成する。 112は操作のためのスイツチ及びLED表示器などが配されている操作パネル、101はLBP100全体の制御及び文字パターン情報等を解析するプリンタ制御ユニツトである。 プリンタ制御ユニット101は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ102に出力する。

    【0018】レーザドライバ102は半導体レーザ10
    3を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ103から発射されるレーザ光1
    04をオン・オフ切替えする。 レーザ光104は回転多面鏡105で左右方向に振られて静電ドラム106上を走査する。 これにより、静電ドラム106上には文字パターンの静電潜像が形成される。 この潜像は静電ドラム106周囲の現像ユニツト107により現像された後、
    記録紙に転写される。 この記録紙にはカツトシートを用い、カツトシート記録紙はLBP100に装着した用紙カセツト108に収納され、給紙ローラ109及び搬送ローラ110と111とにより装置内に取込まれて、静電ドラム106に供給される。

    【0019】このようにして、与えられた印刷データは記録紙上に記録出力される。

    【0020】図2はプリンタ制御ユニット101の詳細な構成を示すブロック図である。 特に、図2では画像メモリの容量を削減するために実行される画像データの符号化圧縮、格納、復元処理に関する部分を示している。

    【0021】図2において、200はホストから供給される文字パターン、文字情報(文字コード)などのPD
    Lデータ、フォーム情報、或は、マクロ命令などを受信するインタフェース、201はインタフェース200から入力される制御コマンドのうち、画像を描画するのに必要なコマンド(オブジェクトコード)を格納するオブジェクトメモリ、202はオブジェクトコードを解釈し、画像データとして描画する描画部、203は描画部202で生成された画像データを展開するビットマップメモリである。

    【0022】描画部202において新たに生成された画像データはビットマップメモリ203に既に展開されている画像データに上書きすることでプリント出力のための画像データが生成される。 さて、この実施形態におけるビットマップメモリ203は、記録用紙1頁分に相当する画像全体を短冊状に複数の領域に分割したときの1
    つの短冊の画像領域に相当する画像データを格納するメモリ容量をもつ。

    【0023】また、204はビットマップメモリ203
    或はレーザドライバ102を復号された画像データの入力先として選択したり、ビットマップメモリ203を画像データの入力先として選択するセレクタ、205は入力された画像データを圧縮する符号化器、206は圧縮して符号化された画像データを格納する符号メモリ、2
    07は符号メモリ206への入出力を制御するセレクタ、208は符号化器205で圧縮符号化された画像データを復号する復号化器である。

    【0024】符号メモリ206は各短冊の画像領域に関し、圧縮符号化した画像データを格納し、各短冊単位に圧縮符号化された画像データを読み出すことができるようになっている。

    【0025】次にプリンタ制御ユニット1001の動作について説明する。

    【0026】ここでは、動作の開始に先立ち、オブジェクトメモリ201、ビットマップメモリ203はクリアされ、また、符号化器205および復号化器208もリセットされているものとする。 また、セレクタ204は入力先に復号化器208、出力先にビットマップメモリ203を、セレクタ207は入力先に符号メモリ20
    6、出力先に復号化器208を選択しているものとする。

    【0027】まず、インタフェース200を介して、ホストからプリンタの制御コマンド(PDL)が入力されると、そのうちオブジェクトコードだけが選択されてオブジェクトメモリ201に格納される。 オブジェクトメモリ201にオブジェクトコードが存在するとき、書き込まれた順に描画部202がこれを読み出し、符号メモリ206に格納された既に各短冊単位に圧縮符号化された画像データの内、どのデータが必要であるのかを決定する。

    【0028】描画器202は、符号メモリ206とセレクタ207とを制御し、符号メモリ206から必要とされた短冊に対応する圧縮符号化された画像データを読み出し、セレクタ207を介して復号化器208に入力する。 次いで、復号化器208は入力された圧縮符号化された画像データを復号する。 さらに、描画器202は、
    得られた復号画像データをセレクタ204を介してビットマップメモリ203に書き込む。 描画器202はオブジェクトコードを解釈し、画像データに展開し、ビットマップメモリ203に書き込まれている画像データに上書きする。

    【0029】続いて、描画器202はオブジェクトコードを読み込み、もし、今ビットマップメモリ203に書き込まれているのと同じ短冊に対応する画像データが必要であれば、そのままオブジェクトコードを解釈し、画像データに展開し、ビットマップメモリ203に書き込まれている画像データに上書きする。 これに対して、読み込んだオブジェクトコードが今ビットマップメモリ2
    03に書き込まれているのとは異なる短冊に対応する画像データを必要とするのであれば、描画器202はセレクタ204を制御して、ビットマップメモリ203の内容をセレクタ204を介して符号化器205に入力する。 符号化器205はその入力された画像データを後述する処理に従って符号化する。 描画器202はさらに符号メモリ206とセレクタ207とを制御して、その結果得られた圧縮符号化された画像データをセレクタ20
    7を介して符号メモリ206の空き領域に書き込むとともに、その短冊に対応する以前の圧縮符号化された画像データを削除する。

    【0030】このような処理を続けて、オブジェクトメモリ201に格納された全てのオブジェクトコードについての処理が終了すると、描画部202はセレクタ20
    7のデータ入力先を符号メモリ206に、データ出力先を復号化器208にするよう制御し、一方、セレクタ2
    04のデータ入力先を復号化器208に、データ出力先をレーザドライバ102にするよう制御する。 そして、
    符号メモリ206から画像の先頭の短冊の領域から順に圧縮符号化された画像データを読み出し、セレクタ20
    7を介して復号化器208に出力し、復号化器208でその圧縮符号化された画像データを復号し、得られた画像データをセレクタ204を介してレーザドライバ10
    2に出力する。 レーザドライバ102はその画像データに従い、半導体レーザ103の発光を制御し、画像を形成する。

    【0031】図3は画像データを圧縮する符号化器20
    8の詳細な構成を示すブロック図である。

    【0032】図3において、302は符号化器208の全体制御を行うCPUである。 CPU302は後述する圧縮処理に使用するレジスタR0,R1,R2を有している。 また、303はビットマップメモリ203から供給される圧縮対象の画像データを一時的に格納する入力バッファ、304は符号化器208によって圧縮されたデータを一時的に格納し、その後符号メモリ206に出力するための出力バッファである。

    【0033】また、305はCPU102が実行する種々の制御プログラムや制御プログラムや定数テーブルなどを格納するプログラムROM、306は後述の第2の圧縮処理に使用するエリアス符号テーブルである。 また、307はCPU302が制御/処理プログラムを実行する時に使用する作業領域および種々の一時的なテーブルの格納などのために用いられるRAM、308は後述の第2の圧縮処理に使用する頻度分布テーブル(TA
    BLE)、309は後述の第1の圧縮処理中のデータを一時的に格納するデータ一時格納領域(TEMPARE
    A)、310は後述の第1の圧縮処理後のデータが一時的に格納される圧縮データ一時格納領域(TEMPCM
    PR)である。

    【0034】図4は、エリアス符号テーブル306に格納されるエリアス符号の例を示す図である。

    【0035】図4において、符号Iは、10進法で表現される整数(n)を2進数で表わしたときの桁数(ビット数)から1を減じた数だけ0を続けた後に、nの2進数表示を続けたものである。 言い換えると、符号Iは、
    0の数によるnの桁数表示の後にnの2進数表示(これは必ず1から始まる)を続けたものである。 例えば、n
    =7の場合、これは2進数では“111”であり、桁数は3である。 従って、3から1を減じた数、つまり、2
    つの“0”を続けた後にn=7の2進数表示“111”
    を続けるので、n=7の場合の符号Iは、“0011
    1”となる。

    【0036】他方、符号IIは最初の桁数表示の代わりに符号Iを利用したものである。 言い換えると、nを2進数で表わしたときの桁数(ビット数)を符号Iで表現した後に、nの2進数表示の先頭の1を除いたものを続けている。 なお、桁数表示に符号IIを利用することで、さらにビット数を減らすこともできるが、これによって生じるメリットはわずかであるため、実際の符号化では符号IIまでがよく用いられる。 この実施形態では符号Iを使用するものとする。 例えば、n=7の場合、これは2
    進数では“111”であり、桁数は3である。 従って、
    その“3”を符号Iで表現すると“011”となり、その後にn=7の2進数表示“111”の先頭の1を除いたものを続けると、n=7の場合の符号IIは、“011
    11”となる。

    【0037】図5は頻度分布テーブル(TABLE)の内容を示す図である。

    【0038】頻度分布テーブル(TABLE)は入力バッファに303に入力されたビットマップデータについてバイト単位にその冗長度を調べて得られたランレングスの頻度分布を表わすようになっている。 この実施形態では、後述する符号化器208の圧縮処理に合わせて最大256のランレングスをもつ圧縮データの分布が分かるようになっている。

    【0039】図6は符号化器208の圧縮処理で得られる圧縮データの構成を示す図である。

    【0040】圧縮データは2バイト以上129バイト以下のデータ長をもつデータを1単位としている。 図6に示すように、各単位の先頭は1バイトのコントロールコード(CNTLCODE)であり、その先頭1ビット、
    即ち、符号ビットによって残りの7ビットが繰り返しデータの数(ランレングス)であるか、もしくは、次に続く繰り返しなしデータのデータ数を示す値かが判断される。 符号ビットが“1”、即ち、負の値のときは(−C
    NTLCODE+1)回続く1バイトのデータが繰り返されることを示し、正の値のときはCNTLCODE+
    1バイトのデータが繰り返しなしで続くことを意味する。

    【0041】次に、以上のような符号化器208の動作について、図7A、図7B、及び、図8に示すフローチャートを参照して説明する。

    【0042】まず、符号化器208が起動されると、ステップS301では、入力バッファ303、出力バッファ304、頻度分布テーブル(TABLE)308、データ一時格納領域(TEMPAREA)309、圧縮データ一時格納領域(TEMPCMPR)310がクリアされ、CPU302の1バイト長のレジスタR0に“−
    1”の値が、CPU302のレジスタR1に設定されているフラグ(IFLG)の値が偽(FALSE)を示す“0”に、CPU302の1バイト長のレジスタR2に設定されるカウンタ(ICNT)の値が“0”に初期化される。

    【0043】次にステップS302では、ビットマップメモリ203から画像データが入力バッファ303に供給され、その先頭から1バイトずつ読み出されたデータ(DATA)がデータ一時格納領域(TEMPARE
    A)309に格納される。 そして、ステップS303ではそのデータがデータの終わりを示すEOD(End Of D
    ata)であるかどうかを調べ、EODが検出されれば、
    処理はステップS304に進み、未処理データの後処理を実行する。 その後処理には、圧縮処理がなされていない未処理データに基づく頻度分布テーブル(TABL
    E)308の更新や圧縮データ一時格納領域(TEMP
    CMPR)310へのデータ転送が含まれる。 その後処理の後、処理は終了する。

    【0044】これに対して、EODが検出されなかった場合には処理はステップS305に進み、読み出した1
    バイトのデータ(DATA)をCPU302のレジスタR0に格納されているデータと比較する。 ここで、DA
    TA=R0であれば処理はステップS306に進み、D
    ATA≠R0であれば、処理はステップS316に進む。

    【0045】次に、ステップS306で、レジスタR1
    の値が真(TRUE)を示す“1”であるかどうかを調べる。 ここで、R1=1であれば処理はステップS30
    7に進み、R1≠1であれば処理はステップS312に進む。

    【0046】ステップS307では、さらに、レジスタR2の値が“128”であるかどうかを調べる。 ここで、R2=128であれば処理はステップS308に進み、“1x81”とレジスタR0に格納された1バイトのデータ(DATA)で圧縮データを構成し、これを圧縮データ一時格納領域(TEMPCMPR)310に出力する。 さらに、ステップS309では、ステップS3
    08で処理された圧縮データについて、頻度分布テーブル(TABLE)308の対応するランレングスの部分の頻度の値を“+1”インクリメントするようにして頻度分布テーブル308の内容を更新する。 さらに、ステップS310では、CPU302のレジスタR0の値を“−1”に、CPU302のレジスタR1に設定されたフラグ(IFLG)の値を“0”に、CPU302に設定されたレジスタR2に設定されたカウンタ(ICN
    T)の値を“0”にリセットする。 その後、処理はステップS302に戻り、次の1バイトを読み込む。

    【0047】これに対して、R2≠128であれば処理はステップS311に進み、レジスタR2の値を“+
    1”インクリメントし、その後、処理はステップS30
    2に戻り、次の1バイトを読み込む。

    【0048】さて、処理はステップS312において、
    レジスタR2の値が2以上であるかどうかを調べる。 ここで、R2≧であれば処理はステップS313に進み、
    (R2−1)の値を圧縮データ一時格納領域(TEMP
    CMPR)310に出力し、さらにデータ一時格納領域(TEMPAREA)309に格納されたデータの先頭からR2バイト分のデータを圧縮データ一時格納領域(TEMPCMPR)310に出力し、データ一時格納領域(TEMPAREA)309の内容をクリアする。
    さらに、ステップS314では圧縮データ一時格納領域(TEMPCMPR)310に出力したデータの冗長度に従って頻度分布テーブル308の内容を更新する。 その後、処理はステップS315に進む。

    【0049】これに対して、R2<2であれば、処理はステップS313〜314をスキップして、ステップS
    315に進む。

    【0050】ステップS315では、CPU302のレジスタR0にDATAの値を、CPU302のレジスタR1に設定されたフラグ(IFLG)の値を“1”に、
    CPU302に設定されたレジスタR2に設定されたカウンタ(ICNT)の値を“2”にセットする。 その後、処理はステップS302に戻り、次の1バイトを読み込む。

    【0051】さて、処理はステップS316において、
    CPU302のレジスタR1に格納されているフラグ(IFLG)をチェックする。 ここで、IFLG=
    “1”であれば処理はステップS322に進み、IFL
    G=“1”であれば処理はステップS322に進む。

    【0052】ステップS317では、レジスタR2の値が“128”であるかどうかを調べる。 ここで、R2=
    128であれば処理はステップS318に進み、“1x
    7f”を圧縮データ一時格納領域(TEMPCMPR)
    310に出力し、さらにデータ一時格納領域(TEMP
    AREA)309に格納されたデータの先頭から128
    バイト分のデータを圧縮データ一時格納領域(TEMP
    CMPR)310に出力し、データ一時格納領域(TE
    MPAREA)309の内容をクリアする。 さらに、ステップS319では、ステップS318で処理された圧縮データについて、頻度分布テーブル(TABLE)3
    08の対応するランレングスの部分の頻度の値を“+
    1”インクリメントするようにして頻度分布テーブル3
    08の内容を更新する。 さらに、ステップS320では、CPU302のレジスタR0の値を“−1”に、C
    PU302のレジスタR1に設定されたフラグ(IFL
    G)の値を“0”に、CPU302に設定されたレジスタR2に設定されたカウンタ(ICNT)の値を“0”
    にリセットする。 その後、処理はステップS302に戻り、次の1バイトを読み込む。

    【0053】これに対して、R2≠128であれば処理はステップS321に進み、レジスタR2の値を“+
    1”インクリメントし、その後、処理はステップS30
    2に戻り、次の1バイトを読み込む。

    【0054】さて、処理はステップS322において、
    −(R2−1)の値を圧縮データ一時格納領域(TEM
    PCMPR)310に出力し、さらにレジスタR0の値を圧縮データ一時格納領域(TEMPCMPR)310
    に出力する。 さらに、ステップS323では圧縮データ一時格納領域(TEMPCMPR)310に出力したデータの冗長度に従って頻度分布テーブル308の内容を更新する。 さらに、ステップS324では、CPU30
    2のレジスタR0にDATAの値を、CPU302のレジスタR1に設定されたフラグ(IFLG)の値を“0”に、CPU302に設定されたレジスタR2に設定されたカウンタ(ICNT)の値を“1”にセットする。 その後、処理はステップS302に戻り、次の1バイトを読み込む。

    【0055】以上のようにして、全データに対する処理が終了すると、処理は図8のフローチャートに示される処理に移行する。

    【0056】まず、ステップS401では、圧縮データ一時格納領域310に格納されたデータのバイト数(T
    byte)をチェックする。 ここで、そのバイト数(T
    byte)が所定の閾値(TH)以下(Tbyte≦T
    H)と判断された場合、十分なデータ圧縮がなされたと判断して、処理はステップS402に進み、圧縮データ一時格納領域310に一時的に格納されたデータを出力バッファ304に出力し、その後、出力先となる符号メモリ206に出力する。 これに対して、そのバイト数(Tbyte)が所定の閾値(TH)より大きい場合(Tbyte>TH)、データ圧縮処理が不十分であると判断して、処理はステップS403に進む。

    【0057】ステップS403では、頻度分布テーブル(TABLE)308に格納されたランレングスの頻度分布からその頻度の高い順にソートする。 このソートは、クイックソート法、バブルソート法、ヒープソート法など一般的に知られるソート法の何を用いても構わないが、ここではクイックソート法を用いてソートを行うものとする。

    【0058】次に、ステップS404で頻度順にソートされたテーブルに従い、頻度の高い順からエリアス符号テーブル106に格納されるエリアス符号の符号長の短い符号を割り付ける。 例えば、ランレングス1が最も頻度が高く、次いで、ランレングス8、ランレングス20
    ……となるとすれば、ランレングス1のデータを符号I
    の“1(2進表示)”に、ランレングス8のデータを符号Iの“010(2進表示)”に、ランレングス20のデータを符号Iの“011(2進表示)”に割り付ける。

    【0059】次に処理はステップS405において、頻度順にソートされた頻度分布テーブル(TABLE)3
    08自体を出力バッファ304に一時的に格納し、出力先となる符号メモリ206に出力する。

    【0060】次にステップS406に進み、圧縮データ一時格納領域(TEMPCMPR)310に一時的に格納されたデータを1バイトずつ読み出し、ステップS4
    04で割り付けられたエリアス符号に従って、各バイトデータをエリアス符号化し、出力バッファ304に一時的に格納し、その後、出力先となる符号メモリ206に出力する。

    【0061】従って以上説明した実施形態に従えば、入力データを入力順にバイト単位にその冗長度を調べ、そのランレングスに従ってデータ圧縮をするとともに、ランレングスの頻度分布を求める。 そして、入力データ全てに対する圧縮処理が終了した後、その圧縮度を調べ、
    所定の圧縮率が得られていなければ、ランレングスの頻度分布に基づいて、もっとも、頻度の高い順からデータ長の短い符号が割り付けるようにしてエリアス符号化を実行するので、前段階でなされた圧縮処理の結果を反映して、最も効率的な(圧縮率の高い)符号化を行なうことができる。

    【0062】なお、以上の実施形態では、圧縮データ一時格納領域(TEMPCMPR)310に格納されたデータのバイト数(Tbyte)が所定の閾値より大いかどうかでさらにエリアス符号化を実行するかどうかを判断したが本発明はこれによって限定されるものではない。 例えば、図9のフローチャートに示すように、ステップS403〜S404の頻度分布テーブル(TABL
    E)308のソーティングとエリアス符号の割り付けを行なった後に、ステップS503において頻度分布テーブル(TABLE)308と割り付けられたエリアス符号の各符号長をそれぞれ掛け合わした値の総和から総データ符号長(TCODE)を算出し、さらにステップ5
    04で、圧縮データ一時格納領域(TEMPCMPR)
    310に格納されているデータのサイズ(Tbyte)
    と比較し、その比較結果に従って、ステップS402の処理、或は、ステップS405〜S406の処理を実行するようにしても良い。

    【0063】また、以上の実施形態では、頻度分布テーブル(TABLE)308の変更を圧縮データの圧縮データ一時格納領域(TEMPCMPR)310への格納時に行なっていたが本発明はこれによって限定されるものではなく、例えば、入力バッファ303からのデータ獲得時に行うようにしても良い。

    【0064】さらに、以上の実施形態では、最初のランレングス圧縮によって所望の圧縮率が得られなかった場合に、圧縮データ一時格納領域(TEMPCMPR)3
    10へ格納されていたデータを入力して、エリアス符号化を行なっていたが、本発明はこれによって限定されるものではなく、例えば、再度入力バッファ102からデータを入力するようにしても良い。 これによって、最初の圧縮処理で所望の圧縮ができなかった場合、初めからエリアス符号化を行なうようにできる。 同様に、図9に示す処理においても、圧縮データ一時格納領域(TEM
    PCMPR)310へ格納されていたデータではなく、
    再度入力バッファ102からデータを入力して、エリアス符号化を行なっても良い。

    【0065】また、以上説明した実施形態において、最初の圧縮方法としてパックビッツ圧縮法を用いたが、他のランレングス圧縮法、例えば、LZW圧縮、MH圧縮、MR圧縮、MMR圧縮、JBIG圧縮なとどのような圧縮方法を用いても構わない。 また、第2の圧縮方法としてはランレングスの頻度分布を利用した固定の可変長符号圧縮を用いたが、同じ頻度分布を用いるものとして、ハフマン圧縮、算術圧縮などの他の圧縮方法を用いても構わない。 また、同じ頻度分布を用いる圧縮で第1
    の圧縮を算術圧縮、第2の圧縮をハフマン圧縮とし、第1の圧縮で算出した頻度分布表をもとに、第2の圧縮の圧縮率を算出して圧縮効率のよい方を選択するようにしても構わない。

    【0066】また、第2の圧縮における固定の可変長符号としてエリアス符号を用いたが、固定の可変長符号であれば、ある予め定められた頻度分布表に基づくハフマン符号を用いても構わない。

    【0067】なお、本発明は、複数の機器(例えばホストコンピュータ,インタフェイス機器,リーダ,プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用してもよい。

    【0068】また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPU
    やMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。

    【0069】この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。

    【0070】プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD
    −R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。

    【0071】また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。

    【0072】さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。

    【0073】

    【発明の効果】以上説明したように本発明によれば、データを入力し、第1の圧縮方法に基づいて入力データの圧縮を行ない、その圧縮処理から得られる圧縮情報を用い、第2の圧縮方法に基づいて、第1の圧縮方法によって圧縮されたデータの圧縮を行なうので、第1の圧縮方法による処理がこれに続く第2の圧縮方法によるデータ圧縮に反映され、より効率的にデータ圧縮が実行されるので、全体のデータ圧縮処理速度が向上するという効果がある。

    【0074】

    【図面の簡単な説明】

    【図1】本発明の代表的な実施形態である電子写真方式を採用して記録を行なうプリンタエンジンを含んだレーザビームプリンタの内部構造を示す側断面図である。

    【図2】プリンタ制御ユニット101の詳細な構成を示すブロック図である。

    【図3】画像データを圧縮する符号化器208の詳細な構成を示すブロック図である。

    【図4】エリアス符号テーブル306に格納されるエリアス符号の例を示す図である。

    【図5】頻度分布テーブル(TABLE)の内容を示す図である。

    【図6】符号化器208の圧縮処理で得られる圧縮データの構成を示す図である。

    【図7A】ランレングス符号化処理を示すフローチャートである。

    【図7B】ランレングス符号化処理を示すフローチャートである。

    【図8】エリアス符号化処理を示すフローチャートである。

    【図9】エリアス符号化処理の変形例を示すフローチャートである。

    【符号の説明】

    100 レーザビームプリンタ(LBP) 101 プリンタ制御ユニット 102 レーザドライバ102 103 半導体レーザ 104 レーザ光 105 回転多面鏡 106 静電ドラム 107 現像ユニツト 108 用紙カセツト 109 給紙ローラ 110、111 搬送ローラ 112 操作パネル 200 インタフェース 201 オブジェクトメモリ 202 描画部 203 ビットマップメモリ 204、207 セレクタ 205 符号化器 206 符号メモリ 208 復号化器 302 CPU 303 入力バッファ 304 出力バッファ 305 プログラムROM 306 エリアス符号テーブル 307 RAM 308 頻度分布テーブル(TABLE) 309 データ一時格納領域(TEMPAREA) 310 圧縮データ一時格納領域(TEMPCMPR)

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈