JP4693309B2 - Image processing apparatus, control method therefor, computer program, and storage medium - Google Patents
Image processing apparatus, control method therefor, computer program, and storage medium Download PDFInfo
- Publication number
- JP4693309B2 JP4693309B2 JP2001285682A JP2001285682A JP4693309B2 JP 4693309 B2 JP4693309 B2 JP 4693309B2 JP 2001285682 A JP2001285682 A JP 2001285682A JP 2001285682 A JP2001285682 A JP 2001285682A JP 4693309 B2 JP4693309 B2 JP 4693309B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- image area
- data
- area information
- encoding
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、画像データを圧縮符号化する画像処理装置及びその制御方法及びコンピュータ、並びにコンピュータ可読記憶媒体に関するものである。
【0002】
【従来の技術】
従来,静止画像の圧縮方式には,離散コサイン変換を利用したJPEG方式や,Wavelet変換を利用した方式が多く使われている.この種の符号化方式は,可変長符号化方式であるので,符号化対象の画像毎に符号量が変化する。
【0003】
国際標準化方式であるJPEG方式では,画像に対して1組の量子化マトリクスしか定義できないので、プリスキャン無しには、符号量調整が行なえず、限られたメモリに記憶するシステムで使用する場合においては、メモリオーバーを起こす危険性があった。
【0004】
これを防止するために、予定した符号量よりオーバーした場合は、圧縮率を変更して、原稿の再読み込みを行なう方法や、予めプリスキャンによる符号量見積もりを行ない、符号量を調整するために,量子化パラメータの再設定を行なう方法などがとられていた。
【0005】
一方、画像情報には、元の画像データ以外に、該画像データに付随する像域情報というものがある。像域情報は主に、画像出力時の見栄えを良くするために、画像出力部での色処理や諧調数の調整に用いられる。有彩色と無彩色が混在する自然画像と、原稿中に多く見られる黒文字とでは、同じ黒色でも使用するインクの種類を変えることで、自然画像を自然画像らしく見せる一方で、鮮明な文字を出力することが出来る。
【0006】
このように、画素毎に、有彩色か無彩色、文字部かそうでないか、といった各々1ビットの属性フラグデータを持つことにより、画像出力時、特にプリントアウト時に出力画像の画質向上を図ることが出来る。像域情報には前記以外の他の情報もある。
【0007】
画像情報を圧縮するには、画像データの圧縮はもちろんのこと、上記像域情報も圧縮する必要がある。像域情報は2値データの集まりであり、これを圧縮するには基本的に可逆の符号化方式を用いる必要がある。従来、像域情報の圧縮にはPackbitsやJBIG符号化方式が用いられてきた。
【0008】
しかしながら、前記像域情報をこれらの符号化方式で圧縮するだけでは、符号量調整を行なえず、限られたメモリに記憶するシステムで使用する場合においては、メモリオーバーを起こす危険性があり、大きな問題であった。
【0009】
【発明が解決しようとする課題】
しかしながら、従来は、画像データの圧縮ばかりが検討され、像域情報の圧縮については、検討されることが少なかった。まして、該像域情報の圧縮後の符号量を目標値以内に収めること等、ほとんど考えられることが無く、ある符号化方式を用いて該像域情報を単純に符号化するだけであった。
【0010】
本発明は上記従来例に鑑みて成されたものであり、画像データ及び像域情報それぞれを、それぞれの目標値以内の符号量に収めるための効果的な画像処理装置及びその制御方法及びコンピュータプログラム及びコンピュータ可読記憶媒体を提供しようとするものである。
【0011】
かかる課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
多値画像データ及び多値画像データの各画素の像域情報を入力し、それぞれに独立した多値画像圧縮手段と像域情報圧縮手段とを備える画像処理装置であって、
圧縮符号化された多値画像データ及び像域情報を格納するメモリを備え、
前記多値画像圧縮手段は、
圧縮率を決定するパラメータが変更可能な第1の多値画像圧縮手段と、
圧縮率を決定するパラメータが変更可能であって、前記第1の多値画像圧縮手段で圧縮した符号データを復号し、再圧縮する第2の多値画像圧縮手段と、
前記第1の多値画像圧縮手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する画像データ符号量監視手段と、
該画像データ符号量監視手段によって前記所定量に達したと判断した場合、前記第1、第2の多値画像圧縮手段へ圧縮率を変更するパラメータを設定する画像符号パラメータ設定手段と、
該画像符号パラメータ設定手段によりパラメータを変更した場合、前記第1の多値画像圧縮手段で従前に生成された符号データを前記第2の多値画像圧縮手段によって再符号化させ、当該再符号化を済ませた符号データを、前記第1の多値画像圧縮手段のパラメータ変更後の符号データとして前記メモリに保存させると共に、
パラメータ変更後の前記第1の多値画像圧縮手段で生成された符号化データを、後続符号データとして前記メモリに保存させる画像圧縮制御手段とを備え、
前記像域情報圧縮手段は、
前記像域情報を可逆符号化する第1の像域情報圧縮手段と、
該第1の像域情報圧縮手段で符号化された像域情報を復号し、一部の種類の情報を縮退させて再度可逆符号化する第2の像域情報圧縮手段と、
前記第1の像域情報圧縮手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する像域情報量監視手段と、
該像域情報量監視手段によって前記所定量に達したと判断した場合、縮退させる像域情報の種類を、前記第1、第2の像域情報圧縮手段へパラメータとして設定する像域符号パラメータ設定手段と、
該像域符号パラメータ設定手段によりパラメータを変更した場合、前記第1の像域情報圧縮手段で従前に生成された符号データを前記第2の像域情報圧縮手段によって再符号化させ、当該再符号化を済ませた符号データを、前記第1の像域情報圧縮手段のパラメータ変更後の符号データとして前記メモリに保存させると共に、
パラメータ変更後の前記第1の像域情報圧縮手段で生成された符号化データを、後続符号データとして前記メモリに保存させる像域圧縮制御手段とを備えることを特徴とする。
【0012】
【発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を説明するが、先ず、基本部分について説明する。
【0013】
図1は、実施形態が適用する画像処理装置100の機能ブロック構成図である。以下、同図の各部を簡単に説明する。
【0014】
画像処理装置100は、イメージスキャナから画像を入力する入力部101を備えている。なお、入力部101は、ページ記述言語レンダリングなどから画像データを入力しても良いし、記憶媒体に格納された画像ファイルを読込むことで実現しても良く、場合によってはネットワークより受信するようにしても良い。
【0015】
符号化部102は、入力された画像データの符号化を行なう。なお、符号化方式は公知のJPEG符号化方式を用い、8×8画素単位に相当する画像データを直交変換し、後述する量子化ステップを用いた量子化、ハフマン符号化処理を行なうものである。
【0016】
第1のメモリ制御部103と第2のメモリ制御部105は、上記符号化部102から夫々に出力されてくる上記符号化データ(同じ符号化データ)を第1のメモリ104と第2のメモリ106へ格納する様に制御する。ここで、第1のメモリ104は、最終的に確定した(目標値以内のデータ量に圧縮し終わった)符号化データを、図1の基本構成の外部に接続されるネットワーク機器、画像出力装置や大容量記憶装置等へ出力するために、該符号化データを保持するためのメモリである。また、第2のメモリ106は、前記符号化データを第1のメモリ上に形成するための圧縮符号化処理を補助する作業用のメモリである。
【0017】
カウンタ107は、符号化部102によって圧縮符号化された画像データのデータ量をカウントし、該カウント値を保持すると共に、そのカウント結果を符号化シーケンスの制御を行なう符号化シーケンス制御部108に出力する。
【0018】
符号化シーケンス制御部108では、カウンタ107のカウント値がある設定値に達したかどうかを検出し、その設定値に達した(目標値を越えた)ことを検出した時にメモリ104内の格納済みのデータを廃棄するよう第1のメモリ制御部103に制御信号を出力する。上記第1のメモリ制御部103は、この制御信号に基づいて、メモリアドレスカウンタをクリアするか、あるいは符号化データ管理テーブルをクリアすることにより、前記格納データを廃棄する。また、このとき、符号化シーケンス制御部108は、第1のカウンタ107をゼロクリアする(入力部101からの入力は継続している)と共に、符号化部102に対して今までより、高い圧縮率で符号化を行なうよう制御する。すなわち、本装置の符号化処理で発生する符号化データのデータ量が最終的に例えば1/2になるように制御する。なお、ここでは、1/2としたが任意に設定できることは言うまでもない。
【0019】
そして、圧縮率変更後の符号化データも、これまでと同様、第1のメモリ制御部103と第2のメモリ制御部105を経て、第1のメモリ104と第2のメモリ106に夫々格納される。
【0020】
さらに、符号化シーケンス制御部108は、第2のメモリ制御部105に対して、これまでに第2のメモリ106に格納した符号化データを読み出し、符号化データ変換手段である再符号化部109に該符号化データを出力するよう制御信号を出す。
【0021】
再符号化部109は、入力された符号化データを復号化し、データ量を減らすための再量子化等を行なった後に再び符号化処理を行ない、圧縮率が変更された符号化部102と同じ圧縮率のデータ量を第2のカウンタ110に出力する。
【0022】
この再符号化部109から出力される符号化データは、第1のメモリ制御部103と第2のメモリ制御部105を経由して、それぞれ、第1のメモリ104と第2のメモリ106に格納される。
【0023】
再符号化処理が終了したかどうかは、第2のメモリ制御部が検出する。すなわち、再符号化処理するために読み出すデータが無くなれば、再符号化処理の終了を符号化シーケンス制御部108に知らせる。実際には、第2のメモリ制御部105の読みだし処理だけでなく、再符号化部109の処理も終了した後に、符号化処理が完了したことになる。
【0024】
第2のカウンタ110で得られるカウント値は、再符号化処理が完了した後、第1のカウンタ107で保持されているカウンタ値に加算される。この加算結果は再符号化処理が完了した直後における、第1のメモリ104内のデータ量の合計を表す。即ち、1画面分の符号化部102と再符号化部109の符号化処理が終了した時点では、上記加算後の第1のカウンタ107で保持されているカウンタ値は、1画面分を本装置が符号化した場合に発生した総データ量を表す(詳細は後述)。
【0025】
符号化部102は、再符号化処理の終了/未終了に関わらず、符号化するべき入力部101からの画像データが残っている限りは符号化処理を継続して行なう。
【0026】
カウンタ107のカウント値がある設定値に達したかどうかは入力部101から入力される1ページ分の画像データの符号化処理(符号化、再符号化)が終わるまで繰り返され、上述した符号化と再符号化の処理は、ここで得られる検出結果に応じた制御の上で実行される。
【0027】
上記、図1の構成における処理のフローを表わすフローチャートを図8に示すが、説明を簡単にするため、簡略化した図3のフローチャートに従って先ず説明する。
【0028】
既に説明したように、本発明の画像処理装置100は、スキャナ等の入力部101から入力した1ページの画像データを所定のデータ量以下に圧縮符号化する装置である。該符号化処理を実現するために、前記入力部101以外に、符号化部102、再符号化部109、第1のメモリ104、第2のメモリ106等を有する。これらの機能ブロックを用い、図3に示すフローチャートに基づいて符号化処理を行なう。
【0029】
図3のフローチャートは、大別すると、下記の3つの処理フェーズに分かれる。
(1)符号化フェーズ
(2)符号化・再符号化フェーズ
(3)転送フェーズ
上記それぞれの処理フェーズおいて、どのように画像データ、符号化データ等が流れて処理され,メモリにどのように格納されるかを視覚的に解り易く示したのが図4乃至図7である。
【0030】
図4は、図3のフローチャートにおけるステップS303とS305に対応する符号化フェーズの初期状態を表わす。また、図5はステップS307〜S315に対応する符号化・再符号化フェーズの処理状態を、図6はステップS317に対応する転送フェーズの処理状態を、図7は転送フェーズ後の符号化フェーズの処理状態を表わす。以下、各フェーズについて説明する。
【0031】
<<符号化フェーズ>>
1ページ分の画像データの符号化処理は、符号化パラメータの初期設定(ステップS301)から始まる。ここでは符号化処理する画像サイズ(スキャナ等の入力部101から読み取る用紙サイズ)から一意的に定まる符号化データ量の上限値や符号化部102(ここでは公知のJPEG符号化方式を用いるものとする)に適用する量子化ステップ(Q1)といったパラメータを設定する。
【0032】
そして、ステップS303にて、第1のカウンタ107は、実際の符号化処理(画像の8×8画素単位にJPEG圧縮)を行ない、出力される符号化データのデータ量を累積カウントする。
【0033】
次にステップS305にて、該データ量のカウント値が上記上限値をオーバーしたかどうかを検知し、オーバーしていなければステップS303のJPEG符号化処理を継続する。これが初期状態の符号化フェーズである。
【0034】
符号化部102から出力する符号化データは、図4に示すように第1のメモリ104と第2のメモリ106の両方に格納されていく。縦縞で示した領域が該格納した符号を表現している。
【0035】
<<符号化・再符号化フェーズ>>
符号化部102の符号化処理が進行し、前記データ量のカウント値が設定されている上限値をオーバーすると、ステップS307にて、第1のメモリ104内の符号化データを廃棄すると共に、ステップS309にて、符号化部102の量子化ステップをQ2に変更する。
【0036】
符号化データのデータ量のカウント値が設定された上限値をオーバーするという事は、圧縮後のデータ量が目標値以内に収まらないことを意味する。よって同じ量子化ステップを用いて符号化処理を継続しても意味が無いので、前よりもデータ量が少なくなるように、Q1よりも量子化ステップ幅の大きい量子化ステップQ2に変更するわけである。
【0037】
量子化ステップを変更した後、ステップS311では符号化部102の符号化処理を再開し、図5に示すように符号化データを第2のメモリ106のみに格納する。それと並行して、ステップS313の再符号化処理を行なう。再符号化処理では、第2のメモリ106に格納済みの符号化データを読み出して、再符号化部109にて再符号化処理を行ない、前記2つのメモリ104、106に格納する。そして、縦縞▲1▼の符号を全て再符号化するまで、該符号化処理と再符号化処理を継続する。再符号化部109から出力される再符号化データは、量子化ステップ変更後に符号化部102から出力される符号化データと同じ量子化ステップで符号化して得られる符号化データと全く同一の符号化データである。
【0038】
具体的にこの再符号化処理では、符号化データを一旦ハフマン復号した後の各量子化値に対して、これら値を2nで割った結果と同様の結果が出るビットシフト処理を施した後、再度ハフマン符号化を行なうことにより実現される。この方法は、ビットシフトのみで量子化ステップを変更する点と逆直交変換や再直交変換処理を行なわない点で、高速な再符号化処理が可能である。ステップ315では、再符号化処理の終了検知が行なわれる。
【0039】
再符号化後のデータ量は再符号化前の符号化データのデータ量よりも少なくなるので、図5に示すように、再符号化前の符号を格納していたメモリ領域に再符号化後の符号化データを上書きするように格納することができる。再符号化処理が終了した時点で、縦縞▲1▼の符号化データのデータ量は図6に示すの斜め縞▲1▼の符号化データのデータ量へと減少する。
【0040】
以上で説明したステップS307〜315が、符号化・再符号化フェーズで行なう処理である。
【0041】
<<転送フェーズ>>
再符号化処理が終了したら、ステップS317では転送処理が行なわれる。該転送処理では、図6に示すように、符号化・再符号化フェーズで第2のメモリ106のみに格納した斜め縞▲2▼の符号化データを、第1のメモリ104内の斜め線▲1▼の符号化データに連結されるアドレスに転送し、格納する。その一方で、第2のメモリ106上で分散してしまっている斜め縞▲1▼の符号化データと斜め縞▲2▼の符号化データが第1のメモリ104上で連続して格納される様に、前記斜め縞▲2▼の符号化データを第2のメモリ106内で転送し、連結させる。これが、転送フェーズで行なう処理である。
【0042】
上記転送フェーズが終了したら、ステップS303、S305の符号化フェーズに戻り、図7に示すように斜め縞▲4▼の符号を符号化部102から出力して2つのメモリ104,106に格納する。この符号化フェーズは、初期状態の符号化フェーズ(図4)と少し異なり、符号化部102で符号化する際の量子化ステップがQ1からQ2に変更されていると共に、2つのメモリ104,106に格納されている符号化データも様々なフェーズで処理された符号の集まりである。それらの違いを無視すれば、転送フェーズ直後の符号化フェーズと初期状態の符号化フェーズは、同じと見なせる。
【0043】
よって、符号化フェーズ、符号化・再符号化フェーズと転送フェーズの3つを繰り返すことで、最終的に1ページの画像データをデータ量設定値以下に圧縮した符号を第1のメモリに格納することが出来る。しかも、入力部101は一連の処理が終わるまで、入力を継続するだけである。すなわち、画像を再度最初から入力し直すということが無くなる。
【0044】
図3に示したフローチャートは、説明が理解しやすいように、図4、図5、及び、図6に示した各フェーズに対応する処理のみを記述した。しかしながら実際には、1ページの画像データの入力はどこかのフェーズで終了する。従って、どのフェーズで終了したかによって、それ以降の対応も多少異なる。それを考慮した流れを示したのが図8のフローチャートである。図8のフローチャートは、1ページ分の画像データの入力完了と図3で説明した各種処理との関係を考慮したものであり、ここでは図3のフローチャートに、ステップS801、S803、S805、S807を追加している。
【0045】
ステップS801、S803、S805は、それぞれ、符号化フェーズ、符号化・再符号化フェーズ、転送フェーズにおいて、入力部101からの1ページ分の画像データの入力が終了したことを検知する。
【0046】
符号化フェーズと転送フェーズで1ページ分の画像データの入力が終了したことを検知した場合(ステップS801、S805)、ステップS807へ移り、当該ページの圧縮符号化処理を終了し、次に処理すべき1ページ以上の画像データがあれば、次の1ページ分の画像データの圧縮符号化処理を開始し、無ければ停止状態に入る。
【0047】
一方、符号化・再符号化フェーズで1ページ分の画像データの入力終了を検知した場合(ステップS803)には、符号化部102では再符号化処理する画像データが無くなるまで一旦動作を止める必要があるので、ステップS311の符号化処理をパスし、ステップS313で、今までに符号化部102で符号化済みの画像データを所定の符号化データ量に抑える為の再符号化処理のみを継続して行なう。再符号化処理が全て終了して、その後の転送処理が終わらないと、1ページ分の画像データ全体の符号化データが第1のメモリ上に集まらないため、1ページ分の画像データの入力終了後も再符号化処理及びそれに続く転送処理は継続して行われる必要がある。この場合には、ステップS315にて、再符号化処理が全て終了したことを検知すると、符号化・再符号化フェーズ中に、第2のメモリ106のみに格納された符号化データを第1のメモリに転送し(ステップS317)た後、次のステップS805にて、1ページ分の画像データの入力終了が検知されてステップS807へ移ることになる。
【0048】
以上が動作であり、図8の動作説明でもある。
【0049】
<メモリ格納方法の変形例>
図9、図10は図5、図6の概念図で示したメモリ格納方法の変形例を示す図である。
【0050】
図5の概念図においては、符号化・再符号化フェーズでは、符号化部102から出力する符号化データは第2のメモリ106のみに格納していたが、図9に示すように符号化・再符号化フェーズ中に、符号化部102から出力する符号化データを第1、第2メモリの両方に直接格納する。
【0051】
符号化部102から見ると、どのフェーズで符号化して出力する符号化データも両方のメモリへ格納することになる。また、図6の概念図とは異なり、図10に示す様に、転送フェーズでメモリ間のデータ転送が必要なくなる。またこの変形例の場合には、符号化・再符号化フェーズにおいて、符号化データと再符号化データを第1のメモリ104へ送った順序で順次格納される。そのため2種類のデータが入り混じってしまうという問題は有る。
【0052】
従って、この変形例の場合にはこれに対応する為に符号化データをある単位で区切って、ファイル或いはパケットとして管理する様にする。具体的には、ファイル管理テーブル、或いは、パケット管理テーブル等を別に作成して管理する。
【0053】
一つの手法としては、符号化部102からのデータを第1メモリ104に格納する際、適当な単位(例えば前記直交変換の単位が8×8のブロックであるので、8×i(i=1、2…の整数)ライン分のデータ)毎に、画像データの先頭から管理番号を割り当て、各管理番号に対応する符号化データの格納先頭アドレスと該符号化データ量とを、管理番号順に格納できるような管理テーブルを作成する。
【0054】
符号化部102や再符号化部109は処理中のデータの管理番号を保持し、該管理番号に基づいて、符号化データ格納時の先頭アドレスと符号化データ量とを管理テーブルに書き込む。このようにすれば、符号化部102と再符号化部109で処理した符号化データをランダムに格納したとしても、前記管理テーブルを管理番号順にアクセスし、その時読み出させる先頭アドレスと符号化データ量に基づいて、符号化データを第1メモリ104から読み出せば、画像の先頭から順番に符号化データを読み出すことができる。このような管理機構を設ければ、画像上で連続するデータをメモリ上で連続するように格納する必要性が無くなる。
【0055】
図10の概念図における転送フェーズ後の符号化フェーズは、これまで説明した2つの符号化フェーズ(図4、図7)とほとんど同じであり、第1のメモリ内における符号の格納状態が図11に示した様に若干異なるだけである。よって、先の説明と本変形例は、3つのフェーズを繰り返して処理することに変わりは無い。
【0056】
次に、本発明において特徴的な符号化処理を行なう為の、第2の基本構成の例(これまで説明した構成を第1の例という)を図2を用いて説明する。
【0057】
図2は、第2の例における画像処理装置200のブロック構成図である。
【0058】
図1の画像処理装置100と大きく異なる点は、最初に符号化を行なう符号化部が2つ並列に存在する点である。画像処理装置200は、入力部201から入力される画像データを、第1の符号化部202と第2の符号化部205で並行して符号化し、互いに圧縮率の異なる2種類の符号化データを生成する。本例でも、符号化方式は公知のJPEG符号化方式を用い、8×8画素単位に相当する画像データを直交変換し、後述する量子化ステップを用いた量子化、ハフマン符号化処理を行なうものである。
【0059】
なお、本例では第1の符号化部202よりも、第2の符号化部205の方が適用する圧縮率を高く設定する場合について説明する。具体的には、第1の符号化部202における量子化ステップをQ1、第2の符号化部205の量子化ステップをQ2(=2×Q1)とする。
【0060】
符号化部202から出力される符号化データは、第1のメモリ制御部203を経由して、第1のメモリ204に格納される。このとき、第1のカウンタ208は、符号化部202から出力される符号化データのデータ量をカウントし、これを保持すると共に、符号化シーケンス制御部209にも出力する。
【0061】
一方、符号化部205で符号化された符号化データは、第2のメモリ制御部206を経由して、第2のメモリ207に格納される。このとき、第2のカウンタ210は、符号化部205から出力される符号化データのデータ量をカウントし、これを保持する。更に、後述する第2のメモリ207に格納している符号化データを第1のメモリ204に転送する時には、それと同時に上記カウント値を、第1のカウンタ208に転送する。
【0062】
さて、第1のカウンタ208が符号化部202から出力される符号化データのデータ量をカウント中に、該カウント値がある設定値に達した時には、符号化シーケンス制御部209は、第1の例と同様、メモリ制御部203に対してメモリ204に格納されているデータを廃棄するよう制御信号を出す。
【0063】
そして、符号化シーケンス制御部209は、第2のメモリ207に格納している符号化データを読み出して第1のメモリ204に転送し、第1のメモリ204に格納するよう、メモリ制御部206とメモリ制御部203に制御信号を出力する。この結果、第2のカウンタ210のカウント値が第1のカウンタ208に転送され、その値が第1のカウンタのカウント値としてロード(上書き)される。
【0064】
要するに、上記第2のカウンタ210のカウント値は、第2のメモリ207に格納している符号化データのデータ量を表わしているので、そのカウント値と符号化データを、互いの対応付けが変わらない様に、そのまま第1のカウンタと第1のメモリへコピーしたと考えれば良い。
【0065】
さらに、符号化シーケンス制御209は、第1の符号化部202および、第2の符号化部205に対して、今までよりも、符号化データが少なくなるような符号化を行なうように制御信号を出す。
【0066】
例えば、第1の符号化部202、及び、第2の符号化部205における量子化ステップSを2倍に切り替えす。この結果、第1の符号化部202は、その直前までの第2の符号化部205における量子化ステップQ2(=2×Q1)を継承することになり、第2の符号化部205は更に大きな量子化ステップQ2×2を用いて、次のオーバーフローに備えた更に高い圧縮率の符号化処理を行うことになる。
【0067】
ここでは、量子化ステップの倍率比を2倍としたがこれに限らず、任意に設定できることは示すまでもない。切り替えられた各符号化部202、205から出力された符号化データは、それぞれ、対応するメモリ制御部203、206を経由して、対応するメモリ204、207に格納される。
【0068】
そして、符号化シーケンス制御209は、メモリ制御部206に対し、既に第2のメモリ内に格納している符号化データを読み出して、再符号化部211にデータを送るよう制御信号を出す。再符号化部211は、図1の再符号化部109と同様にして符号化データの再符号化処理を行なう。
【0069】
第3のカウンタ212は、再符号化部211が出力したデータ量をカウントするもので、再符号化処理を開始する直前にゼロにリセットされ、再符号化処理中の出力データ量をカウントする。このカウンタ212は、再符号化処理が終了した時点で、そこで得られたカウント値を第2のカウンタ210に転送する。
【0070】
第2のカウンタ210は、上記転送されてきたデータ量カウント値を、第2のカウンタ210内に保持しているカウンタ値に加算することにより、再符号化処理中にメモリ207に格納した、符号化データと再符号化データの合計のデータ量を算出する。即ち、メモリ207に格納しているデータ量とカウンタ210のカウント値とが一致する。
【0071】
再符号化処理の終了/未終了に関わらず、符号化するべき入力部201からの画像データが残っていれば、2つの符号化部202と205による符号化処理を継続して行なう。そして、カウンタ208のカウント値がある設定値に達したかどうかの監視は入力部201から入力される1ページ分の画像データの符号化処理(符号化、再符号化)が終わるまで繰り返され、上述した符号化と再符号化の処理は、ここで得られる検出結果に応じた制御の上で実行される。
【0072】
上記図2の構成における処理のフローを表わすフローチャートを図12に示す。
【0073】
図2で説明したように符号化部が2つある場合は、図12に示すフローチャートに基づいて1ページ分の画像データの符号化を行なう。なお、図12の説明は、符号化部が1つの場合のフローチャートである図8とは、大半は類似しており、当業者であれば上記説明から本第2の例の特徴は十分に理解できるであろうから、符号化部1つの場合と同じように3つのフェーズで処理を説明する様にし、図8と異なる点を主に説明することとする。
【0074】
上述した図8のフローと本例のフローとの一番大きな違いは、ステップS317の転送処理が、ステップS307とステップS309の間に移動していることである。要するに、符号化・再符号化フェーズと転送フェーズが入れ替わったと見なせば良い(ステップS307の符号化データの廃棄処理は例外である)。
【0075】
ステップS301の符号化パラメータの初期設定では、第1の符号化部202に量子化ステップQ1を、第2の符号化部205には量子化ステップQ2(=2×Q1)を設定する。
【0076】
符号化フェーズでは、ステップS801、S303、S305を繰り返し実行する。ステップS801とステップS305は符号化部が1つの場合と同じ処理であるが、ステップS303の符号化処理だけは図13に示すように異なっている。
【0077】
第1のメモリ204へ格納する符号化データは圧縮率が段階的に高くなるようにするため、最初に格納する符号化データは圧縮率が一番低い量子化ステップQ1で符号化したデータを格納し、第2のメモリへ格納する符号化データは量子化ステップQ2で符号化したデータを格納する。
【0078】
第1のメモリ204へ格納中のデータ量が設定されている上限値をオーバーしたら(ステップS305)、直ちに、第1のメモリ204で保持していた符号化データを廃棄し(ステップS307)、第2のメモリ207で保持している圧縮率の高い符号化データを、第1のメモリ204へ転送する(ステップS317、図14参照)。これにより、第1の例(図1)で説明した1回目の再符号化処理の終了を待たずに、速やかに、上限値をオーバーしない適切な2番目の候補の符号化データを第1のメモリ207内に格納出来る。これが、図1に対する、2つの符号器を持つ図2を適用することの最大の利点である。
【0079】
本第2の例では、2つのメモリ204、207で同じ圧縮率の符号化データを持っていることが無駄という考え方なので、第2のメモリ207には、第1のメモリ204に格納する符号化データよりも圧縮率の高い符号化データを格納しておくようにしている。従って、それ以降の処理もこの考え方に基づき行われるものであり、第2のメモリ207内の符号化データを第1のメモリ204に転送する処理(転送フェーズ)が終了した後は、第2のメモリ207の符号化データを、更に1段階圧縮率の高い符号化データを保持する様に再符号化することとなる。
【0080】
具体的には、まず図15に示す様に、転送フェーズの次の符号化・再符号化フェーズでは、上記再符号化の前に、2つの符号化部202,205に適用される各量子化ステップQ1、Q2をそれぞれQ2、Q3へ変更し(ステップS309)、1ページの画像データの入力が終了せずに続いていれば(ステップS803)、後続の画像データは新たな量子化ステップが設定された2つの符号化部で該入力データを符号化して(ステップS311)、対応する各メモリ204,207へ格納する。そして、上記符号化処理と並行して第2のメモリに格納されている符号化データ(第1のメモリ204に転送したもの)は、第1のメモリ内の符号化データよりも1段階高い圧縮率の符号化データに変更するべく、再符号化部211にて量子化ステップQ3を用いて符号化されたデータが得られる様な再符号化処理(S313)を行ない、再符号化データを第2のメモリ207に格納し直す。
【0081】
なお、本第2の例でも、第1の例と同様、再符号化処理では、符号化データを一旦ハフマン復号した後の各量子化値に対して、これら値を2nで割った結果と同様の結果が出るビットシフト処理を施した後、再度ハフマン符号化を行なうことにより実現される。この方法は、ビットシフトのみで量子化ステップを変更する点と逆直交変換や再直交変換処理を行わない点で、高速な再符号化処理が可能である。
【0082】
なお、本第2の例の様に符号化部が2つ有る場合には、図15に示したように、第2のメモリ207に符号化データと再符号化データを混在して格納する状況が発生する。従って、前述したように、符号化データをある単位で区切って、ファイル或いはパケットとして管理することが、第2のメモリ207に対しても必要になる。その為には、例えば第1の例における変形例と同様の構成を設ければ良いであろう。
【0083】
図12において、再符号化処理の終了をステップS315で検知したら、また符号化フェーズ(ステップS801、S303)に移行する。なお、符号化・再符号化フェーズ後の符号化フェーズでは、図16に示すように、2つのメモリ204,207が保持する符号化データは圧縮率が違うだけでなく、符号化データの混在の仕方(アドレス)もかなり違ってくる。従って、再度、第1のメモリ204のデータ量が設定値をオーバーした場合には、第2のメモリ207で保持されている符号化データ(▲6▼+▲8▼の横縞の領域の符号)が第1のメモリ204へ転送される必要が出てくる。これらを考慮すると、第2のメモリ207だけでなく、第1のメモリ204でも符号化データをファイル或いはパケットとして管理する必要がある。よって、第1のメモリ204にも前述の管理テーブルを用いた管理機構が必要となる。
【0084】
図16に示された符号化フェーズの状態は、量子化ステップと符号化データの混在の仕方が、再符号化処理の前後で異なっていること以外は、初期状態の符号化フェーズ(図13)と同じである。よって、符号化フェーズ、転送フェーズと符号化・再符号化フェーズを繰り返すことで、最終的に、1ページ分の画像データを設定した上限値以下に圧縮した符号化データを確実に第1のメモリ204に格納することが出来る。
【0085】
なお、第1の例の説明とは、転送フェーズと符号化・再符号化フェーズの配置順が逆であることから、図8において転送処理後に行なっていた1ページ分の画像データの入力終了検知(ステップS805)は、符号化・再符号化フェーズで行なう1ページ分の画像データの入力終了検知(ステップS803)と、ほとんど同じタイミングになってしまう。また、2つの検知処理は、機能的にはステップS805と同じで、タイミング的にはステップS803と同じである、従って、これら2つのステップは、新たな1ページ分の画像データの入力終了を検知するステップとして統合し、ステップS1201と表記しておく。
【0086】
以上説明した第1、第2の例では、第1のメモリと第2のメモリは物理的に別のメモリであるとして説明をしてきた。これは、2つのメモリに対するアクセスが独立したものとすることができるので有利なためであり、本発明の特徴となす。しかしながら、第1のメモリと第2のメモリを、物理的に別のメモリとしない場合も本発明の範疇に含まれる。物理的に1つのメモリ上に、前記第1のメモリと第2のメモリに相当する2つの領域を確保して、第1のメモリを第1のメモリ領域、第2のメモリを第2のメモリ領域と言い直して、これまでの説明を読み直せば、本発明は、1つのメモリでも実現できることが分かる。
【0087】
また、1つのメモリで上記各例を実現する場合には、前記転送フェーズで説明したデータ転送処理のいくつかは不要となる。その詳細はその都度容易に想像できるので説明は省略するが、前記2つの領域を厳密に別けて使用する場合、物理的に2つのメモリを持つ時と同じようにデータ転送処理が必要であるが、2つの領域間で同じデータを共有することになれば、データ転送処理が不要になるだけでなく記憶容量の削減も図れる。
【0088】
例えば、第2のメモリ領域で保持していた符号化データを、第1のメモリ領域へ転送する際、該符号化データが格納されている先頭アドレスとデータサイズの2つの情報を第2のメモリ制御部から第1のメモリ制御部へ転送するだけで、前記符号化データを転送したのと同じ効果が得られる。
【0089】
前記符号化データを、ファイル形式やパケット形式で格納している場合は、メモリ制御部の間で転送する情報は少し増え、該符号化データに関連する管理テーブル情報を転送する必要がある。それでも、符号化データを転送するよりは、効率が良い。
【0090】
さて、上述した画像処理装置によると、入力した画像データを符号化していく際に、目的とするサイズに越えるような場合であっても、その入力を継続しつつ目標とするサイズに収めるよう処理を継続することができるようになるが、本発明では、上記画像データの圧縮データの符号量の制御以外に、該画像データに付随する像域情報を符号化したデータの符号量の制御も行なうものである。
【0091】
以下に説明する実施形態では、画像は勿論、その像域情報についても符号化する点に特徴を有する。以下に、その具体的な構成及び動作(もしくは処理)について説明する。
【0092】
<第1の実施形態>
上述の画像処理装置に本発明を適用した第1の実施形態を図17に示す。同図は図1に示した基本構成に本発明を適用したもので、図1の構成と同じ機能ブロックには、同一番号を付すことで、その説明は省略する。
【0093】
イメージスキャナやページ記述言語レンダリングなどから入力部101を通して入力した画像データは、既に説明した処理方法に基づいて符号化と再符号化処理を繰り返して行ない、符号化データを設定した符号量以内に収める。
【0094】
一方で、画像データは像域情報生成部1701に供給され、前述の像域情報を生成する。本実施形態では、スキャナ入力画像について説明しているので、画像データのみに基づいて像域情報を生成するが、ページ記述言語(PDL)を展開・描画した画像の場合、該PDL情報も参照して像域情報を生成すれば良い。なお、像域情報はスキャナ等の画像入力機器で生成することもある。その場合、前記像域情報も入力部101を通して入力され、像域情報生成部1701を素通りして、次のユニットへ送られる。
【0095】
さて、像域情報生成部1701で生成する像域情報であるが、実施形態では、着目画素が文字・線画領域であるか中間調領域であるのか、及び、有彩色か無彩色なのかを示す情報を生成する。それぞれ1ビットで表現できるので、1画素について合計2ビットの像域情報(それぞれのビットは、像域情報を構成することになるので像域成分情報という)を生成することになる。
【0096】
像域情報生成部1701の動作を簡単に説明すると、次の通りである。
【0097】
先ず、文字・線画領域か中間調領域であるのかの判断であるが、文字・線画の場合には背景に対してその輝度(或いは濃度)が急峻に変化する。一方、中間調領域にある場合、注目画素の輝度(或いは濃度)は隣接する画素に対して変化が小さい。従って、注目画素の輝度をLi、左右の画素の輝度をLi-1、Li+1と定義したとき、
|Li−Li-1|>T
又は、
|Li−Li+1|>T
である場合に、注目画素は文字線画(のエッジ)にあると判断できる。尚、ここでの|x|はxの絶対値を示すものである。
【0098】
なお、濃度が急峻に変化しているか否かを判断する式は上記のものに限らない。例えば、
|2Li−Li-1−Li+1|>T
を満たすかどうかで判断してもよいし、一次元方向のみではなく、2次元方向について判断するようにしても良い(但し、2次元で判断する場合には、像域情報生成部1701内には、複数ライン分の画像データを記憶するためのメモリを必要とする)。
【0099】
一方、有彩色/無彩色の判断であるが、入力される画像データはスキャナより読み取られたものであるので、R、G、Bのデータ形式になっている。
【0100】
無彩色というのは、RGBの各色成分が互いに同じ輝度である場合であるので、
R=G=B
なる関係を有する場合には無彩色として判断し、それを満たさない場合には有彩色と判断する。ただし、スキャナ装置が有するCCDの精度も加味する必要があるので、実際は、
B−Δ<R<B+Δ
R−Δ<G<R+Δ
G−Δ<B<G+Δ
の全てを満たすとき無彩色と判断し(Δは適当な小さい数値)、それ以外を有彩色と判断するようにしても良い。
【0101】
場合によっては、RGB色空間を例えば輝度、色相、彩度(例えばLab表色空間)に変換し、その彩度が所定値以下の場合に無彩色、所定値を越える場合に有彩色と判断しても良いであろう。
【0102】
以上の如く、像域情報生成部1701は、入力された画像データから注目画素が文字・線画/中間調領域か、有彩色か無彩色かを示す2ビットの像域情報を生成し、出力する。
【0103】
図17の説明に戻る。上記のようにして、生成した像域情報は、ブロック化ユニット1703にて、まとめて符号化するデータのサイズ、例えばM×Nのサイズ(従ってM×N×2ビット)へブロック化する。ブロックサイズは、32×32とするが、符号化効率を上げるため、それ以上、例えば64×64や128×128でも構わないし、必ずしも正方サイズである必要もない。それ故、M×Nサイズとした。
【0104】
ところで、像域情報を符号化する場合、通常の画像データの圧縮に利用するJPEGのような多値の非可逆圧縮は適さない。それ故、可逆圧縮であるJBIG、或いはPackBits等のランレングス符号化を用いることとした。可逆符号化部1705では、該当するブロックの像域情報を、この可逆符号化する。
【0105】
符号化した像域情報は、第1のメモリ制御部103を経由して、第1のメモリ104に格納すると共に、第2のメモリ制御部105を経由して、第2のメモリ106にも格納する。つまり、符号化した像域情報も、符号化した画像データと同様、2つのメモリに同時に格納されることになる。また、これと同時に、可逆符号化部1705から出力される符号のサイズ情報を第4のカウンタ1707にて累積カウントし(1ページの読み取りを開始する際にリセットされる)、その結果を可逆符号化制御部1709に供給する。
【0106】
可逆符号化制御部1709内のレジスタには予め目標値(外部より適宜変更することも可能)が設定される。そして、前記像域情報の符号量が該目標値をオーバーした時に、第1のメモリ制御部103、第2のメモリ制御部105、そして、可逆符号化部1705及び可逆符号際符号化部1711に制御信号を出力する。なお、このとき、第4のカウンタ1707をリセットする。
【0107】
以下、この制御信号を受けた場合の、第1のメモリ制御部103、第2のメモリ制御部105、可逆符号化部1705及び可逆符号際符号化部1711それぞれの動作を以下に説明する。
【0108】
先ず、第1のメモリ制御部103であるが、上記制御信号(目標値オーバーを示す信号)を受け取ると、第1のメモリ104に格納済みの符号化データ(像域情報)を廃棄する。廃棄の仕方は先に説明した画像データの符号化データを廃棄する方法と同じである。
【0109】
また、第2のメモリ制御部105が、この制御信号を受けると、第2のメモリ106から符号化した像域情報を読み出し、その情報を可逆符号再符号化部1711に送る処理を行う。
【0110】
可逆符号再符号化部1711は、第2のメモリ制御部105より符号化データを受け取るとそれを復号化し、像域情報の一部を廃棄するか固定値に置き換えた後、再び可逆符号化を行なう。詳細は後述するが、像域情報の一部を固定値に置き換えた場合でも情報エントロピーが低下するため、ランレングス符号化後のデータ量は減少する。再符号化後の属性データは、第2のメモリ106に再び格納する(この段階では、第1のメモリ104には格納しない)。そして、再符号化後の符号量を第5のカウンタ1713にてカウントする。第5のカウンタ1713は、目標値オーバーと判断された時点で、第2のメモリに格納されている既に符号化したデータを再符号化が完了するまでカウントし、再符号化が完了したときに、第4のカウンタ1707に足しこむ。また、この再符号化が完了したとき、第2のメモリ106に格納された、目標値オーバー検出以前に入力された像域情報の再符号化データを、第2のメモリ106から第1のメモリ104に一気に転送する。
【0111】
一方、可逆符号化部1705が目標値オーバーを示す信号を受信すると、それ以降に入力される像域情報に対して、可逆符号再符号部1711と同様、すなわち、入力される像域情報を変換し(エントロピー低下させる処理を行い)、それを符号化する。
【0112】
これ以降、再度目標値オーバーしたことが検出すると、可逆符号化制御部1709は、上記と同様の制御信号を発生することを繰り返す。ただし、可逆符号化部1705及び可逆符号再符号化部1711は、それまでよりも、より圧縮率が高くなるよう、像域成分情報の一部を変更もしくは変換するようにする。
【0113】
以上の動作をより分かりやすく説明すると次の通りである。
【0114】
可逆符号化部1705で符号化された像域情報は第1のメモリ104及び第2のメモリ106にそれぞれ格納される。可逆符号化制御部1709は、像域情報の符号量が目標値オーバーを検出すると、先ず、それまでの符号化された第1のメモリ104内の像域情報を破棄させると共に、それ以降に入力される像域情報中の像域成分情報の1つを固定値に変換し、効率の良いランレングスとなるように変更した後に符号化するよう可逆符号化部1709に制御信号を発行する。
【0115】
この結果、目標値オーバーとなった後に入力される像域情報は、より高い圧縮率となって可逆符号化され、第1のメモリ104に格納されるようになる。第4のカウンタ1707は、目標値オーバーとなったことが検出されるとリセットされ、カウントを開始するが、以下に説明する第5のカウンタの値を足しこむことで、1ページの原稿画像の最初からカウントしたのと同等の情報量をカウントすることになる。
【0116】
一方、目標値オーバーとなる以前の像域情報は、第1のメモリ104から破棄されるものの、第2のメモリ106には残っている。そこで、この第2のメモリ106に格納されていた符号化済み像域情報を、可逆符号再符号化部1711は受信して復号し、そして、符号化方法が変更された可逆符号化部1705と同様の符号化を行って第2のメモリ106に格納していく。このとき、可逆符号再符号化部1711で再符号化した符号量は第5のカウンタ1713でカウントされ、可逆符号再符号化部1711による再符号化処理が完了すると、第5のカウンタ1711のカウント結果が第4のカウンタに足しこまれる。これにより、第4のカウンタは、原稿画像を最初から符号化したときと同じ符号量を計数を行うことになる。
【0117】
こうして、可逆符号再符号化部1711による、目標値オーバー検出以前に符号化された像域情報の再符号化が完了すると、その符号化された像域情報は第2のメモリ106から第1のメモリに転送(コピー)されると、可逆符号化部1705から出力される符号化された像域情報は、第1のメモリ104、第2のメモリ105の双方に格納されていく。
【0118】
この結果、第1のメモリ104には、目標値オーバーとなる以前の像域情報が再符号化されて格納されることになるので、結果的に、第1のメモリ104には、原稿画像の先頭からの現在入力中の像域情報の符号化後のデータが格納されることになる。
【0119】
しかして、第1のメモリ104には、像域情報と実質的に同じ処理によって圧縮された原稿画像(実施形態では非可逆符号)も格納されているわけであるから、第1のメモリ104には、圧縮画像データ及び圧縮像域情報の両方が、それぞれの目標値以下の情報量となって格納されることになる。
【0120】
さて、可逆符号化部1705及び可逆符号再符号化部1711において、ランレングスを稼ぐため(可逆圧縮でありながら、圧縮率を高める処理)の具体的な手段であるが、実施形態では次の2つを用意した。
処理P1:文字・線画/中間調画素の識別ビットが中間調画素を示している画素位置の、有彩色/無彩色の識別情報を全て有彩色に変更する。
処理P2:文字・線画/中間調画素の識別ビットを中間調画素を示すように変更する。
【0121】
符号化制御部1713は、或るページの像域情報を符号化している最中に、最初に目標値をオーバーすると判断した場合には、上記の処理P1を採用するよう、可逆符号化部1705及び可逆符号再符号化部1711を制御する。そして、この処理を行っても、目標値をオーバーすると判断した場合(2回目の目標値オーバーと判断した場合)には、処理P2を用いて再度符号するよう、可逆符号化部1705及び可逆符号再符号化部1711を制御する。
【0122】
有彩色/無彩色の識別情報を有彩色にするのは、色空間において有彩色空間が無彩色を含んでいるため、大きな問題にはならないからである。また、文字・線画/中間調の識別情報を中間調にすることも、同様の理由による。
【0123】
いずれにしても、かかる像域情報を変更することで、そのエントロピーが低下するため、ランレングス符号化後の情報量は段階的に減少する。
【0124】
以上の結果、入力部101からの画像データの入力を継続しつつ、その画像データ及び像域情報の双方を、それぞれも目標値(目標サイズ)以内に符号化させることができるようになる。
【0125】
次に、本第1の実施形態の像域情報に対する処理内容を説明する。像域情報の符号化処理は、以下に示す像域情報特有の処理を除いて、図8に示す画像データの符号化処理とほぼ同じ手順が同じである。
(1)符号化処理と可逆符号化処理
(2)量子化ステップ変更と像域情報変換処理の変更
(3)再符号化処理と可逆符号再符号化処理
上記処理の相違を、前記図8のフローチャートに反映させたものが図18のフローチャートである。図8におけるステップS303、S309、S311、S313の処理を、図18ではステップS1803、S1809、S1811、S1813の処理に置き換えている。符号化パラメータの初期設定では、画像サイズによって決まる可逆符号化データ量の上限値を可逆符号化制御部内のレジスタにセットし、上記像域情報変換処理の内容を初期状態にリセットする。あとは、図8のフローチャートと同じ説明になる。すなわち、像域情報が目標値を越えた場合の、可逆符号化部1705(及び可逆符号再符号化部1711)における像域成分の変換処理は、ステップS1809で行われることになる。
【0126】
次に、1画素あたり2ビットの像域情報に6ビットデータ“000000”を付加して8ビット化した後、可逆符号としてPackbits符号化を行なった場合の、本実施形態における具体的な処理内容を、図19を用いてさらに詳しく説明する。
【0127】
Packbits符号化する前の8ビットデータは、図19(a)に示すように上位6ビットは全て0で、下位2ビットの上位側(ビット1)に、対応する画素データが文字・線画であるか中間調領域であるかを示すフラグ、下位側(ビット0=LSB)には有彩色か無彩色を表わすフラグデータが入っている。よって、該8ビットデータが取り得る値は、0以上3以下の値である。
【0128】
像域情報生成部1701からは、上記8ビットのデータが画素単位で出力されるものとする。具体的な出力データとして、図19(b)に示すデータを考える。
【0129】
これをPackbits符号化すると図19(c)に示すデータに圧縮される。圧縮後のデータで負の値は連続するデータの個数を表わし、非連続データの個数は正の値で表わしている。これらは長さ情報と言うもので、該長さ情報のサインビットから連続データが続くのか、非連続データが続くのかを判別することが出来るようになっている。圧縮後の各データは同図(b)と同じく8ビット(1バイト)である。1バイトの長さ情報で、表わすことができる最大値は255の半分の約128であり、長さ情報がそれ以下の場合は1組の長さ情報とそれに続く像域フラグデータ群で符号化でき、それを超える場合は複数の組の、長さ情報+像域フラグデータ群、に分けて符号化される。
【0130】
図19(c)の圧縮データを詳しく見てみることにする。最初の長さ情報“−4”はマイナスの値なので、上述したように連続データの連続個数を表わし、長さ情報直後の像域フラグデータ“1”が4つ続くことを表わしている。
【0131】
次のデータ“4”はまた長さ情報であるが、今度はプラスの値なので非連続データが4つ続くことを示している。よって、前記“4”に続く4つのデータ“2,3,2,3”が非連続データを表わす。図19(c)では、長さ情報と像域フラグデータとが区別し易いように、プラスの長さ情報のみ下線を引いている。
【0132】
上記非連続データの次の“−5”は又、連続データの長さ情報で、該長さ情報直後の像域フラグデータ“2”が5つ続くことを表わしている。次の下線付きのデータ“3”は非連続データの長さ情報で、後続する3つのデータ“1,0,1”が像域フラグデータであり、さらに次の“−6,0”は、データ“0”が6個連続することを示している。
【0133】
上記圧縮データを可逆符号再符号化部1715で再符号化処理するとどのようになるのかを、図19(d)(e)を用いて説明する。ここでは、再符号化処理において、有彩色・無彩色フラグを“1”に固定してすべて有彩色にする場合について説明する。
【0134】
符号化された像域情報は一旦復号され、図19(b)のデータに戻された後、上記フラグデータの置き換えが行なわれ、図19(d)のデータに変換される。そして、変換されたデータを再びPackbits符号化することによって、図19(e)の符号化データが得られる。再符号化前の15バイトの符号化データが再符号化後には6バイトに減少することが解かる。
【0135】
上記の再符号化処理を行なったにもかかわらず、全符号量の計数値が符号化制御部1713内のレジスタに設定された目標値を再びオーバーした場合には、前記再符号化処理が終了していれば、直ちに次の新たな再符号化処理を開始する。前記再符号化処理が終了していなければ、該再符号化処理が終了後、直ちに次の新たな再符号化処理を開始する。
【0136】
新たな再符号化処理では、残りの1ビットの像域フラグも“1”に置き換える。これにより、すべての像域フラグデータ(8ビット)の値は“3”となり、データのバイト数をNとすると、符号化後のデータ量はおよそ(2N/128)+2バイトとなる。
【0137】
これは、連続データの個数が128個を超えるたびに、あらたな2バイト1組の符号化データ(長さ情報と連続データ)が増えるためである。
【0138】
Packbitsの符号化回路や復号回路それにデータ変換回路はそれぞれ公知の技術であるため、個別の回路構成についての説明は省略する。
【0139】
上記説明では簡単化のため、各画素の像域フラグを2ビットとして説明したが、前述したように像域フラグとして他の情報もいくつかある。上記再符号化処理では、2ビットの像域フラグデータでは最大2回の再符号化、4ビットの像域フラグデータでは最大4回の再符号化処理が可能であり、像域フラグのビット数が多い程、再符号化処理の回数を増やすことができ、符号量を多段階で制御することができる。
【0140】
さらに、状態数を縮退させる方法を用いれば、さらに符号量を多段階で制御することができる。例えば、2ビットの像域フラグでは、4状態を表わすことができるが、これを1回目の再符号化処理で3状態に縮退させ、2回目の再符号化処理で2状態に縮退させることで、符号化前の情報エントロピーを少しずつ減らし、符号化後のデータ量(符号量)を細かく減らしていくものである。
【0141】
上述したフラグデータを1ビットずつ固定値に置き換える処理を、状態数という言葉を用いて表現すると、像域フラグデータを再符号化するごとに状態数を半分に減らす、と言うことが出来る。
【0142】
1回の再符号化処理で、状態数を半分に減らすより、状態数を1つずつ減らした方が、符号量を細かく減らせるのは当然である。
【0143】
状態数を1つずつ減らした場合の処理結果を図20(b)(c)(d)(e)に示し、それについて説明する。図20(a)は、図19(b)に示した像域フラグデータと同じ、2ビットの4状態の全てが存在するデータである。該4状態をあらためて列挙すると、以下のようになる。
(1)有彩色の文字部(データ“3”に対応)
(2)無彩色の文字部(データ“2”に対応)
(3)有彩色の非文字部(データ“1”に対応、有彩色の画像部とも言う)
(4)無彩色の非文字部(データ“0”に対応、無彩色の画像部とも言う)
1回目の再符号化処理で、上記4状態の内、(3)有彩色の非文字部と(4)無彩色の非文字部、の2状態を合体して1つの状態(3')非文字部に縮退させる。これにより、以下の3つの状態となる。
(1)有彩色の文字部
(2)無彩色の文字部、
(3')非文字部
具体的には、データ“0”を“1”に置き換えることで、上記状態の縮退を行なう。状態縮退後のデータは図20(b)に示すデータに変わる。これをPackbits符号化すると図20(c)に示す符号化データになる。再符号化前の符号化データ図19(c)よりも多少符号量が少なくなっていることが解かる。
【0144】
2回目の再符号化処理では、(1)有彩色の文字部と(2)無彩色の文字部、の2状態を合体して1つの状態(1')文字部に縮退させる。これにより、以下の2状態となる。
【0145】
(1')文字部
(3')非文字部
今度は、データ“2”を“3”に置き換えることで、上記状態の縮退を行なう。状態縮退後のデータは図20(d)に示すデータに変わる。このデータは図19(d)のデータと同じである。これをPackbits符号化した符号化データ図20(e)は当然図19(e)と同じ符号化データになる。
【0146】
状態数を1つずつ減らした場合、再符号化前の15バイトのデータが1回目の再符号化で11バイトに減少し、2回目の再符号化でやっと6バイトに減少する。このように細かく変化して減少する符号量を得ることが出来るので、目標符号量に近い像域フラグの圧縮データを得ることができる。
【0147】
上述したように像域フラグデータの可逆符号化処理は、画像データの圧縮符号化処理とは独立に制御され、それぞれに目標符号量以内のデータに収められる。
【0148】
符号化された2種類のデータは、外部に接続されるネットワーク機器、画像出力装置や大容量記憶装置等へ出力する際に多重化する。該多重化を考慮して、前記2種類のデータを符号化処理する単位を、前述したように同じサイズに合わせておき、1単位を符号化して生成される符号化データを1つのパケットあるいはファイルとして管理・格納する。多重化する際に、画像位置が同じ2種類のパケットデータを、例えば画像データ・像域データの順に連結して、1パケット化し、外部へ出力する。
【0149】
<第2の実施形態>
第2の実施形態は、図2の構成に対して本発明を適用したもので、その構成を図21に示す。同図には図2及び図17で用いた機能ブロックを使用している。該ブロックには同一番号を付し説明を省略する。
【0150】
本第2の実施形態では、図2の構成における画像データの圧縮符号化処理と同じように、2つの符号化部で情報エントロピーの異なる2種類の像域情報を可逆符号化する。この2つの符号化部とは第1の可逆符号化部1705と第2の可逆符号化部2106である。本第2の実施形態で追加する第2の可逆変換部2106では、第1の可逆符号化部よりもエントロピーの低い像域情報を符号化する。
【0151】
本実施形態において追加される、その他のブロックは、上記第2の可逆変換部2106が出力する符号量をカウントする第6のカウンタ2108のみである。
【0152】
図21において、画像データを圧縮符号化するブロックと像域情報を可逆符号化するブロックとは以下のような対応関係がある。
(1)第1、第2の符号化部と第1、第2の可逆符号化部
(2)第1、第2、第3のカウンタと第4、第6、第5のカウンタ
(3)再符号化部と可逆符号再符号化部
(4)符号化シーケンス制御部と可逆符号化制御部
上記各項目の前者のブロックを用いて画像データを圧縮符号化し、後者のブロックを用いて像域情報を可逆符号化する。2つの符号化処理は、ほとんど同じ方法で独立に制御され、各々のデータを目標符号量以下に圧縮する。
【0153】
画像データは量子化ステップの変更により段階的に符号量を減らしていくが、像域情報の方は、可逆符号化前の像域情報のフラグデータの状態数を減少させることで、可逆符号化後の符号量を減らしていく。
【0154】
初期状態では、第1の可逆符号化部1705は全像域情報を符号化するが、第2の可逆符号化部2106は該像域情報のフラグデータの状態数を前記第1の実施形態で述べた像域情報変換処理によって減らし、それから可逆符号化を行なう。
【0155】
第1の可逆符号化部から出力した符号量が目標値をオーバーしたところで、第1のメモリ104に格納していた可逆符号を廃棄して、第2のメモリ106に格納していた可逆符号を第1のメモリに転送し、前記第2の可逆符号化部で行なっていた像域情報変換処理を第1の可逆符号化で引き継いで、前記第1のメモリに転送した可逆符号の後に符号化データを格納する。
【0156】
第2の可逆符号化部では、これまでよりもさらに前記フラグデータの状態数を減らすような像域情報変換処理を行ない、それを可逆符号化する。そうすることで、第1の可逆符号化部より、符号量が少ない可逆符号を生成して第2のメモリに格納する。
【0157】
すでに第2の可逆符号化部で符号化済みの第2のメモリ内の可逆符号、すなわち第1のメモリにも転送した可逆符号は、可逆符号再符号化部1711にて復号化し、第2の可逆符号化部で行なう像域情報変換処理と同じ状態数となるように可逆符号再符号化部にて像域情報変換処理し、再び可逆符号化して、第2のメモリに書き戻す。このように、本実施形態においても、画像データの圧縮符号化処理と同様の方法で、像域情報の符号化処理を行ない、該符号量を制御することが出来る。
【0158】
よって、上述した処理のフローチャートは、図12に示す画像データを圧縮符号化処理するフローチャートの一部の表現を変えるだけで、そのまま用いることが出来る。変える部分は第1の実施形態の場合と同様、以下の3点である。
(1)符号化処理 → 可逆符号化処理
(2)量子化ステップ変更 → 像域情報変換処理の変更
(3)再符号化処理 → 可逆符号再符号化処理
上記3点の表現を変えたフローチャートを図22に示す。ステップS2103、S2109、S2111、S2113の4つの処理内容が上記のように変わる。
【0159】
画像データの圧縮符号化処理と像域情報の符号化処理は並列に行ない、且つ独立に制御するので、図21に示す本第2の実施形態は、図12と図22の2つのフローチャートによって処理フローを規定することが出来る。
【0160】
以上説明した第1、第2の実施形態の処理は、始めに説明した基本部分を含めて、マルチタスクOSを搭載した汎用の情報処理装置(例えばパーソナルコンピュータ等)によるコンピュータプログラムによっても実現できる。従って、本発明はかかるコンピュータプログラムにも適用できるものである。この場合、図1や、第1、第2の実施形態で示したブロック構成図における各ユニットは、コンピュータプログラムのモジュールもしくは関数プログラムで実現できるのは、当業者であれば容易に理解できよう。従って、本願発明は、コンピュータプログラムに適用しても構わない。
【0161】
また、通常、パーソナルコンピュータ等の汎用情報処理装置にコンピュータプログラムを導入する場合には、そのコンピュータプログラムを記憶する記憶媒体(フロッピーディスク、CDROM、MO等)をセットし、インストール或いはコピーすることで実現できるものであるから、本発明はかかる記憶媒体をもその範疇とするものである。
【0162】
以上説明したように本実施形態によれば、可逆符号化した像域情報を復号する復号化手段と、像域情報を該像域情報の情報エントロピーが少なくなるように該像域情報の一部を書き換え、或いは削除する像域情報変換手段と、前記復号化手段で復号した像域情報を前記像域情報変換手段で変換した該像域情報を再び可逆符号化する再符号化手段と、前記情報変換手段を備えた可逆符号化手段と、少なくとも1ページ分の画像データに付随する像域情報を符号化したデータを格納することが可能な格納手段とを有し、前記符号化データの量に応じて、前記可逆変換手段が備えた像域情報変換手段と、再符号化手段の前段にある像域情報変換手段の双方を制御することにより、1ページ分の像域情報を所望の符号化データ量に収めることができる。
【0163】
【発明の効果】
以上説明したように本発明によれば、多値画像データを入力しなおすことなく、多値画像データ及びその像域情報それぞれを目的とするサイズ内に収まるよう符号化することが可能となる。
【図面の簡単な説明】
【図1】本発明を適用する画像処理装置の第1の基本構成を示す図である。
【図2】本発明を適用する画像処理装置の第2の基本構成を示す図である。
【図3】図1の構成における処理を簡略化して示したフローチャートである。
【図4】初期状態の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図5】符号化・再符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図6】転送フェーズにおけるデータフローとメモリ内容を表わす図である。
【図7】転送フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図8】図1の構成における処理の詳細を示すフローチャートである。
【図9】図1の構成の変形例における符号化・再符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図10】図9の変形例における転送フェーズにおけるデータフローとメモリ内容を表わす図である。
【図11】図9の変形例における転送フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図12】図2の構成における処理手順を示すフローチャートである。
【図13】図2の構成における、初期状態の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図14】図2に構成における、転送フェーズにおけるデータフローとメモリ内容を表わす図である。
【図15】図2の構成における、符号化・再符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図16】図2の構成における、符号化・再符号化フェーズ後の符号化フェーズにおけるデータフローとメモリ内容を表わす図である。
【図17】本発明の第1の実施形態における装置のブロック構成図である。
【図18】第1の実施形態における処理手順を示すフローチャートである。
【図19】第1の実施形態における可逆符号の符号化データと再符号化後の符号化データを示す図である。
【図20】可逆符号の再符号化後の符号化データと再々符号化後の符号化データの他の例を示す図である。
【図21】第2の実施形態における可逆符号の再符号化後の符号化データと再々符号化後の符号化データを表わす図である。
【図22】第2の実施形態における処理手順を示すフローチャートである。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus that compresses and encodes image data, a control method thereof, a computer, and a computer-readable storage medium.
[0002]
[Prior art]
Conventionally, the JPEG method using discrete cosine transform and the method using Wavelet transform are often used as still image compression methods. Since this type of encoding method is a variable length encoding method, the amount of code changes for each image to be encoded.
[0003]
In the JPEG method, which is an international standardization method, only one set of quantization matrices can be defined for an image. Therefore, without pre-scanning, the code amount cannot be adjusted and used in a system that stores in a limited memory. There was a danger of causing memory over.
[0004]
In order to prevent this, in order to adjust the code amount by changing the compression rate and re-reading the original when the code amount exceeds the planned code amount, or by estimating the code amount by pre-scanning in advance , The method of resetting the quantization parameter was taken.
[0005]
On the other hand, the image information includes, in addition to the original image data, image area information accompanying the image data. The image area information is mainly used for color processing and tone adjustment in the image output unit in order to improve the appearance at the time of image output. For natural images with a mixture of chromatic and achromatic colors and black characters often seen in the original, changing the type of ink used in the same black makes the natural image look like a natural image while outputting clear characters I can do it.
[0006]
As described above, each pixel has 1-bit attribute flag data indicating whether it is a chromatic color or an achromatic color and whether it is a character portion, thereby improving the image quality of the output image at the time of image output, particularly at the time of printout. I can do it. The image area information includes information other than the above.
[0007]
In order to compress image information, it is necessary to compress not only the image data but also the image area information. Image area information is a collection of binary data, and in order to compress it, it is basically necessary to use a reversible encoding method. Conventionally, Packbits and JBIG encoding methods have been used for compression of image area information.
[0008]
However, only by compressing the image area information with these encoding methods, the code amount cannot be adjusted, and when used in a system that stores in a limited memory, there is a risk of causing a memory overload. It was a problem.
[0009]
[Problems to be solved by the invention]
However, conventionally, only compression of image data has been studied, and compression of image area information has been rarely studied. In addition, there is almost no possibility of keeping the code amount after compression of the image area information within a target value, and the image area information is simply encoded using a certain encoding method.
[0010]
The present invention has been made in view of the above-described conventional example, and is an effective image processing apparatus, a control method thereof, and a computer program for storing each of image data and image area information within a code amount within each target value. And a computer readable storage medium.
[0011]
In order to solve this problem, for example, an image processing apparatus of the present invention comprises the following arrangement. That is,
An image processing device that inputs multi-value image data and image area information of each pixel of the multi-value image data and includes independent multi-value image compression means and image area information compression means,
A memory for storing compression-coded multi-value image data and image area information;
The multi-value image compression means includes
A first multi-valued image compression means capable of changing a parameter for determining a compression rate;
A second multi-valued image compressing unit that can change a parameter for determining a compression rate, decodes the code data compressed by the first multi-valued image compressing unit, and re-compresses;
An image data code amount monitoring unit that monitors the code amount generated by the first multi-value image compression unit and determines whether or not the code data amount has reached a predetermined amount;
If the image data code amount monitoring means determines that the predetermined amount has been reached, the compression rate is sent to the first and second multi-value image compression means. Change Image code parameter setting means for setting parameters to be
When the parameter is changed by the image code parameter setting means, the code data previously generated by the first multi-value image compression means is re-encoded by the second multi-value image compression means, and the re-encoding is performed. Is the code data after changing the parameters of the first multi-valued image compression means. Me And let it be stored in Mori
Image compression control means for storing the encoded data generated by the first multi-value image compression means after parameter change in the memory as subsequent code data;
The image area information compression means includes:
First image area information for lossless encoding of the image area information compression Means,
The first image area information compression Image area information encoded by the means Decrypt and degenerate some types of information Second image area information to be losslessly encoded again compression Means,
An image area information amount monitoring means for monitoring the code amount generated by the first image area information compression means and determining whether the code data amount has reached a predetermined amount;
When it is determined by the image area information amount monitoring means that the predetermined amount has been reached, The type of image area information to be reduced The first and second image areas; information To compression means Pa Parameter As Image area code parameter setting means to be set;
When the parameter is changed by the image area code parameter setting means, the code data previously generated by the first image area information compression means is re-encoded by the second image area information compression means, and the re-encoding is performed. Finished Mark Code data as code data after changing the parameters of the first image area information compression means In the memory As well as saving
And image area compression control means for storing the encoded data generated by the first image area information compression means after the parameter change in the memory as subsequent code data.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments according to the present invention will be described with reference to the accompanying drawings. First, basic portions will be described.
[0013]
FIG. 1 is a functional block configuration diagram of an
[0014]
The
[0015]
The
[0016]
The first
[0017]
The
[0018]
The encoding
[0019]
The encoded data after the compression rate change is also stored in the
[0020]
Furthermore, the encoding
[0021]
The
[0022]
The encoded data output from the
[0023]
The second memory control unit detects whether or not the re-encoding process has been completed. That is, when there is no more data to be read for the re-encoding process, the encoding
[0024]
The count value obtained by the
[0025]
The
[0026]
Whether or not the count value of the
[0027]
FIG. 8 is a flowchart showing the process flow in the configuration shown in FIG. 1, but for the sake of simplicity, description will be given first according to the simplified flowchart shown in FIG.
[0028]
As described above, the
[0029]
The flowchart of FIG. 3 is roughly divided into the following three processing phases.
(1) Encoding phase
(2) Encoding / re-encoding phase
(3) Transfer phase
FIG. 4 to FIG. 7 show how the image data, encoded data, etc. flow and are processed and stored in the memory in each of the above processing phases in an easy-to-understand manner. .
[0030]
FIG. 4 shows an initial state of the encoding phase corresponding to steps S303 and S305 in the flowchart of FIG. 5 shows the processing state of the encoding / recoding phase corresponding to steps S307 to S315, FIG. 6 shows the processing state of the transfer phase corresponding to step S317, and FIG. 7 shows the encoding phase after the transfer phase. Indicates processing status. Hereinafter, each phase will be described.
[0031]
<< Encoding Phase >>
Encoding processing of image data for one page starts from initial setting of encoding parameters (step S301). Here, the upper limit value of the encoded data amount uniquely determined from the image size to be encoded (paper size read from the
[0032]
In step S303, the
[0033]
Next, in step S305, it is detected whether the count value of the data amount has exceeded the upper limit value. If not, the JPEG encoding process in step S303 is continued. This is the initial encoding phase.
[0034]
The encoded data output from the
[0035]
<< Encoding / Recoding Phase >>
When the encoding process of the
[0036]
That the count value of the data amount of the encoded data exceeds the set upper limit value means that the data amount after compression does not fall within the target value. Therefore, since it is meaningless to continue the encoding process using the same quantization step, it is changed to the quantization step Q2 having a larger quantization step width than Q1 so that the data amount is smaller than before. is there.
[0037]
After changing the quantization step, in step S311, the encoding process of the
[0038]
Specifically, in this re-encoding process, these values are set to 2 for each quantized value after the encoded data is once Huffman-decoded. n This is realized by performing a Huffman coding again after performing a bit shift process that produces a result similar to that obtained by dividing by. This method enables high-speed re-encoding processing in that the quantization step is changed only by bit shift and that inverse orthogonal transformation or re-orthogonal transformation processing is not performed. In step 315, the end of the re-encoding process is detected.
[0039]
Since the amount of data after re-encoding is smaller than the amount of encoded data before re-encoding, as shown in FIG. 5, after re-encoding in the memory area where the code before re-encoding was stored Can be stored so as to be overwritten. When the re-encoding process is completed, the data amount of the encoded data of the vertical stripes (1) decreases to the data amount of the encoded data of the diagonal stripes (1) shown in FIG.
[0040]
Steps S307 to 315 described above are processes performed in the encoding / recoding phase.
[0041]
<< Transfer Phase >>
When the re-encoding process is completed, a transfer process is performed in step S317. In the transfer process, as shown in FIG. 6, encoded data of diagonal stripes (2) stored only in the
[0042]
When the transfer phase ends, the process returns to the encoding phase of steps S303 and S305, and the code of the diagonal stripe (4) is output from the
[0043]
Therefore, by repeating the encoding phase, the encoding / re-encoding phase, and the transfer phase, the code that finally compresses the image data of one page below the data amount setting value is stored in the first memory. I can do it. In addition, the
[0044]
The flowchart shown in FIG. 3 describes only the processing corresponding to each phase shown in FIGS. 4, 5, and 6 so that the explanation can be easily understood. In practice, however, the input of image data for one page ends in some phase. Therefore, the correspondence after that is slightly different depending on which phase it is completed. FIG. 8 is a flowchart showing the flow considering this. The flowchart in FIG. 8 considers the relationship between the completion of input of image data for one page and the various processes described with reference to FIG. 3. Here, steps S801, S803, S805, and S807 are added to the flowchart in FIG. It has been added.
[0045]
Steps S801, S803, and S805 detect that the input of image data for one page from the
[0046]
If it is detected that the input of image data for one page has been completed in the encoding phase and the transfer phase (steps S801 and S805), the process proceeds to step S807, where the compression encoding process for the page is ended, and the next process is performed. If there is more than one page of image data, the compression encoding process of the next one page of image data is started, and if there is no image data, a stop state is entered.
[0047]
On the other hand, when the end of input of image data for one page is detected in the encoding / re-encoding phase (step S803), the
[0048]
The above is the operation, and is also the operation description of FIG.
[0049]
<Modification of memory storage method>
9 and 10 are diagrams showing modifications of the memory storing method shown in the conceptual diagrams of FIGS.
[0050]
In the conceptual diagram of FIG. 5, in the encoding / re-encoding phase, the encoded data output from the
[0051]
When viewed from the
[0052]
Therefore, in the case of this modification, the encoded data is divided into certain units and managed as a file or a packet in order to cope with this. Specifically, a file management table or a packet management table is created and managed separately.
[0053]
As one method, when data from the
[0054]
The
[0055]
The encoding phase after the transfer phase in the conceptual diagram of FIG. 10 is almost the same as the two encoding phases described above (FIGS. 4 and 7), and the code storage state in the first memory is shown in FIG. It is only slightly different as shown in. Therefore, the above description and this modification are the same in that the three phases are repeated.
[0056]
Next, a second basic configuration example (the configuration described so far is referred to as a first example) for performing a characteristic encoding process in the present invention will be described with reference to FIG.
[0057]
FIG. 2 is a block diagram of the
[0058]
A significant difference from the
[0059]
In this example, a case where the compression rate applied by the
[0060]
The encoded data output from the
[0061]
On the other hand, the encoded data encoded by the
[0062]
When the
[0063]
Then, the encoding
[0064]
In short, since the count value of the
[0065]
Furthermore, the
[0066]
For example, the quantization step S in the
[0067]
Here, although the magnification ratio of the quantization step is set to double, it is not limited to this, and needless to say, it can be arbitrarily set. The encoded data output from the switched encoding
[0068]
Then, the
[0069]
The
[0070]
The
[0071]
Regardless of whether the re-encoding process is completed or not, if the image data from the input unit 201 to be encoded remains, the encoding process by the two encoding
[0072]
FIG. 12 is a flowchart showing the process flow in the configuration of FIG.
[0073]
As described with reference to FIG. 2, when there are two encoding units, image data for one page is encoded based on the flowchart shown in FIG. Note that the description of FIG. 12 is mostly similar to FIG. 8, which is a flowchart in the case of one encoding unit, and those skilled in the art will fully understand the features of the second example from the above description. Since it will be possible, the process will be described in three phases as in the case of one encoder, and the points different from FIG. 8 will be mainly described.
[0074]
The biggest difference between the flow of FIG. 8 described above and the flow of this example is that the transfer processing in step S317 is moved between step S307 and step S309. In short, it can be regarded that the encoding / re-encoding phase and the transfer phase are switched (the exception is the discarded processing of the encoded data in step S307).
[0075]
In the initial setting of the encoding parameter in step S301, the quantization step Q1 is set in the
[0076]
In the encoding phase, steps S801, S303, and S305 are repeatedly executed. Steps S801 and S305 are the same processing as in the case of one encoding unit, but only the encoding processing in step S303 is different as shown in FIG.
[0077]
In order to increase the compression rate of the encoded data stored in the
[0078]
When the amount of data stored in the
[0079]
In this second example, since it is a wasteful idea to have encoded data having the same compression rate in the two
[0080]
Specifically, first, as shown in FIG. 15, in the encoding / re-encoding phase subsequent to the transfer phase, each quantization applied to the two encoding
[0081]
In the second example, as in the first example, in the re-encoding process, these values are set to 2 for each quantized value after the encoded data is once Huffman-decoded. n This is realized by performing a Huffman coding again after performing a bit shift process that produces a result similar to that obtained by dividing by. This method is capable of high-speed re-encoding processing in that the quantization step is changed only by bit shift and the inverse orthogonal transformation or re-orthogonal transformation processing is not performed.
[0082]
In the case where there are two encoding units as in the second example, as shown in FIG. 15, the encoded data and re-encoded data are mixedly stored in the
[0083]
In FIG. 12, when the end of the re-encoding process is detected in step S315, the process proceeds to the encoding phase (steps S801 and S303) again. In the encoding phase after the encoding / re-encoding phase, as shown in FIG. 16, the encoded data held in the two
[0084]
The state of the encoding phase shown in FIG. 16 is the initial state of the encoding phase (FIG. 13) except that the method of mixing the quantization step and the encoded data is different before and after the re-encoding process. Is the same. Therefore, by repeating the encoding phase, the transfer phase, and the encoding / re-encoding phase, the encoded data that is finally compressed to be equal to or less than the set upper limit value of the image data for one page is surely stored in the first memory. 204 can be stored.
[0085]
Note that since the arrangement order of the transfer phase and the encoding / re-encoding phase is reversed from the description of the first example, the input end detection of image data for one page, which has been performed after the transfer processing in FIG. (Step S805) has almost the same timing as the input end detection of image data for one page (step S803) performed in the encoding / recoding phase. The two detection processes are functionally the same as step S805 and the timing is the same as step S803. Therefore, these two steps detect the end of input of image data for a new page. Are integrated as a step to be performed and described as step S1201.
[0086]
In the first and second examples described above, the first memory and the second memory have been described as physically separate memories. This is advantageous because access to the two memories can be independent, which is a feature of the present invention. However, the case where the first memory and the second memory are not physically separate memories is also included in the scope of the present invention. Two areas corresponding to the first memory and the second memory are secured on one physical memory, the first memory is the first memory area, and the second memory is the second memory. It can be understood that the present invention can be realized with a single memory by re-reading the above description by rephrasing the area.
[0087]
Further, when each of the above examples is realized with one memory, some of the data transfer processes described in the transfer phase are unnecessary. The details can be easily imagined each time, so the explanation will be omitted. However, when the two areas are used strictly separated, data transfer processing is necessary as in the case of physically having two memories. If the same data is shared between the two areas, not only the data transfer process becomes unnecessary, but also the storage capacity can be reduced.
[0088]
For example, when the encoded data held in the second memory area is transferred to the first memory area, two pieces of information of the head address and the data size in which the encoded data is stored are stored in the second memory. The same effect as that obtained by transferring the encoded data can be obtained only by transferring the data from the control unit to the first memory control unit.
[0089]
When the encoded data is stored in a file format or a packet format, the information transferred between the memory control units is slightly increased, and it is necessary to transfer the management table information related to the encoded data. Nevertheless, it is more efficient than transferring encoded data.
[0090]
Now, according to the above-described image processing apparatus, even when the input image data is encoded, even if it exceeds the target size, processing is performed so that the input is continued and the target size is maintained. In the present invention, in addition to controlling the code amount of the compressed data of the image data, the code amount of the data obtained by encoding the image area information attached to the image data is also controlled in the present invention. Is.
[0091]
The embodiment described below is characterized in that not only an image but also its image area information is encoded. The specific configuration and operation (or processing) will be described below.
[0092]
<First Embodiment>
FIG. 17 shows a first embodiment in which the present invention is applied to the above-described image processing apparatus. In this figure, the present invention is applied to the basic configuration shown in FIG. 1, and the same functional blocks as those in the configuration of FIG.
[0093]
Image data input through the
[0094]
On the other hand, the image data is supplied to an image area
[0095]
The image area information generated by the image area
[0096]
The operation of the image area
[0097]
First, a determination is made as to whether the area is a character / line drawing area or a halftone area. In the case of a character / line drawing, the luminance (or density) of the character / line drawing changes sharply with respect to the background. On the other hand, when the pixel is in the halftone area, the luminance (or density) of the target pixel has a small change with respect to the adjacent pixel. Therefore, the luminance of the target pixel is set to L i , L and L i-1 , L i + 1 When defined as
| L i -L i-1 | > T
Or
| L i -L i + 1 | > T
If it is, it can be determined that the pixel of interest is at the edge of the character line image. Here, | x | indicates the absolute value of x.
[0098]
Note that the formula for determining whether or not the density changes sharply is not limited to the above. For example,
| 2L i -L i-1 -L i + 1 | > T
Or may be determined not only in the one-dimensional direction but also in the two-dimensional direction (however, in the case of determining in two dimensions, the image area
[0099]
On the other hand, the determination of chromatic / achromatic color is made. Since the input image data is read by the scanner, the data format is R, G, B.
[0100]
An achromatic color means that each color component of RGB has the same luminance,
R = G = B
Is determined as an achromatic color, and if not satisfied, it is determined as a chromatic color. However, since it is necessary to consider the accuracy of the CCD that the scanner device has,
B−Δ <R <B + Δ
R−Δ <G <R + Δ
G-Δ <B <G + Δ
It may be determined that an achromatic color is satisfied when all of the above are satisfied (Δ is an appropriate small numerical value), and other colors are determined as a chromatic color.
[0101]
In some cases, the RGB color space is converted into, for example, luminance, hue, and saturation (for example, Lab color space), and when the saturation is below a predetermined value, it is determined to be an achromatic color, and when it exceeds a predetermined value, it is determined as a chromatic color. It would be fine.
[0102]
As described above, the image area
[0103]
Returning to the description of FIG. As described above, the generated image area information is blocked by the
[0104]
By the way, when encoding image area information, multi-value irreversible compression such as JPEG used for compression of normal image data is not suitable. Therefore, we decided to use run-length encoding such as JBIG or PackBits which is lossless compression. The
[0105]
The encoded image area information is stored in the
[0106]
A target value (which can be appropriately changed from the outside) is set in advance in a register in the lossless
[0107]
Hereinafter, the operations of the first
[0108]
First, when the first
[0109]
When the second
[0110]
The lossless
[0111]
On the other hand, when the
[0112]
Thereafter, when it is detected that the target value has been exceeded again, the lossless
[0113]
The above operation will be described in an easy-to-understand manner as follows.
[0114]
The image area information encoded by the
[0115]
As a result, the image area information input after the target value is exceeded is losslessly encoded at a higher compression rate and stored in the
[0116]
On the other hand, the image area information before the target value is exceeded is discarded from the
[0117]
In this way, when re-encoding of the image area information encoded before the target value over detection is completed by the lossless
[0118]
As a result, the image area information before the target value over is re-encoded and stored in the
[0119]
Therefore, the
[0120]
The
Process P1: All the chromatic / achromatic identification information at the pixel position where the character / line drawing / halftone pixel identification bit indicates a halftone pixel is changed to a chromatic color.
Process P2: The character / line drawing / halftone pixel identification bit is changed to indicate the halftone pixel.
[0121]
When the
[0122]
The reason why the chromatic / achromatic color identification information is chromatic is that the chromatic color space includes an achromatic color in the color space, and thus does not pose a major problem. Also, the character / line drawing / halftone identification information is changed to halftone for the same reason.
[0123]
In any case, since the entropy is reduced by changing the image area information, the amount of information after run-length encoding is reduced stepwise.
[0124]
As a result, both the image data and the image area information can be encoded within the target value (target size) while the input of the image data from the
[0125]
Next, processing contents for the image area information of the first embodiment will be described. The image area information encoding process is substantially the same as the image data encoding process shown in FIG. 8 except for the process specific to the image area information described below.
(1) Encoding process and lossless encoding process
(2) Change of quantization step and change of image area information conversion process
(3) Re-encoding process and reversible code re-encoding process
The flowchart of FIG. 18 reflects the difference in the above processing in the flowchart of FIG. The processing in steps S303, S309, S311, and S313 in FIG. 8 is replaced with the processing in steps S1803, S1809, S1811, and S1813 in FIG. In the initial setting of the encoding parameter, the upper limit value of the lossless encoded data amount determined by the image size is set in a register in the lossless encoding control unit, and the contents of the image area information conversion process are reset to the initial state. The rest is the same as the flowchart of FIG. That is, the image area component conversion processing in the lossless encoding unit 1705 (and the lossless code re-encoding unit 1711) when the image area information exceeds the target value is performed in step S1809.
[0126]
Next, specific processing contents in this embodiment when 6-bit data “000000” is added to 2-bit image area information per pixel to 8 bits and then Packbits encoding is performed as a lossless code Will be described in more detail with reference to FIG.
[0127]
In the 8-bit data before Packbits encoding, as shown in FIG. 19A, the upper 6 bits are all 0, and the corresponding pixel data is a character / line drawing on the upper side (bit 1) of the lower 2 bits. A flag indicating whether the region is a halftone region, and flag data indicating a chromatic color or an achromatic color is contained in the lower side (bit 0 = LSB). Therefore, the values that the 8-bit data can take are values of 0 or more and 3 or less.
[0128]
It is assumed that the 8-bit data is output from the image area
[0129]
When this is encoded by Packbits, it is compressed into data shown in FIG. In the compressed data, a negative value represents the number of continuous data, and a non-continuous data number represents a positive value. These are length information, and it is possible to determine whether continuous data continues or non-continuous data continues from the sign bit of the length information. Each data after compression is 8 bits (1 byte) as in FIG. The maximum value that can be represented with 1-byte length information is about 128, which is half of 255. If the length information is less than that, it is encoded with a set of length information and the image area flag data group that follows. If it exceeds that, it is divided into a plurality of sets of length information + image area flag data group and encoded.
[0130]
Let us take a closer look at the compressed data in FIG. Since the first length information “−4” is a negative value, it represents the number of continuous data as described above, and represents that four image area flag data “1” immediately after the length information follow.
[0131]
The next data “4” is also length information, but this time is a positive value, indicating that four non-consecutive data continue. Therefore, the four data “2, 3, 2, 3” following the “4” represent discontinuous data. In FIG. 19C, only the positive length information is underlined so that the length information and the image area flag data can be easily distinguished.
[0132]
“−5” next to the non-continuous data is also length information of the continuous data, and represents that five image area flag data “2” immediately after the length information follow. The next underlined data “3” is the length information of the non-continuous data, the following three data “1, 0, 1” are the image area flag data, and the next “−6, 0” is It shows that 6 pieces of data “0” continue.
[0133]
What happens when the reversible code re-encoding unit 1715 re-encodes the compressed data will be described with reference to FIGS. Here, a case will be described in which the chromatic color / achromatic color flag is fixed to “1” in the re-encoding process to make all chromatic colors.
[0134]
The encoded image area information is once decoded and returned to the data of FIG. 19B, and then the flag data is replaced and converted to the data of FIG. 19D. Then, the encoded data shown in FIG. 19E is obtained by performing Packbits encoding on the converted data again. It can be seen that the encoded data of 15 bytes before re-encoding is reduced to 6 bytes after re-encoding.
[0135]
In spite of performing the above re-encoding process, when the count value of the total code amount again exceeds the target value set in the register in the
[0136]
In the new re-encoding process, the remaining 1-bit image area flag is also replaced with “1”. As a result, the value of all image area flag data (8 bits) is “3”, and when the number of data bytes is N, the amount of data after encoding is approximately (2N / 128) +2 bytes.
[0137]
This is because every time the number of continuous data exceeds 128, a new set of encoded data (length information and continuous data) of 2 bytes increases.
[0138]
Since the Packbits encoding circuit, decoding circuit, and data conversion circuit are well-known techniques, descriptions of individual circuit configurations are omitted.
[0139]
In the above description, the image area flag of each pixel has been described as 2 bits for simplification. However, as described above, there are some other information as the image area flag. In the re-encoding process, 2-bit image area flag data can be re-encoded up to 2 times, and 4-bit image area flag data can be re-encoded up to 4 times. As the number increases, the number of re-encoding processes can be increased, and the amount of codes can be controlled in multiple stages.
[0140]
Furthermore, if a method for reducing the number of states is used, the amount of codes can be further controlled in multiple stages. For example, in a 2-bit image area flag, four states can be represented, but this is reduced to 3 states by the first re-encoding process and reduced to 2 states by the second re-encoding process. The information entropy before encoding is reduced little by little, and the data amount (code amount) after encoding is reduced finely.
[0141]
If the process of replacing the flag data described above with a fixed value bit by bit is expressed using the term number of states, it can be said that the number of states is reduced by half each time the image area flag data is re-encoded.
[0142]
Naturally, the amount of code can be reduced more finely by reducing the number of states by one than by reducing the number of states by half in one re-encoding process.
[0143]
The processing results when the number of states is reduced by one are shown in FIGS. 20B, 20C, 20D, and 20E, which will be described. FIG. 20A shows the same 2-bit 4-state data as the image area flag data shown in FIG. 19B. The four states are listed again as follows.
(1) Chromatic character part (corresponding to data “3”)
(2) Achromatic character part (corresponding to data “2”)
(3) Chromatic non-character part (corresponds to data “1”, also called chromatic image part)
(4) Achromatic non-character part (corresponding to data “0”, also called achromatic image part)
In the first re-encoding process, two states, (3) chromatic non-character part and (4) achromatic non-character part, are combined into one state (3 ′) Reduce to character. As a result, the following three states are obtained.
(1) Chromatic character part
(2) Achromatic character part,
(3 ') Non-character part
Specifically, the above state is degenerated by replacing data “0” with “1”. The data after the state degradation is changed to the data shown in FIG. When this is Packbits encoded, the encoded data shown in FIG. It can be seen that the code amount is somewhat smaller than that of the encoded data before re-encoding in FIG.
[0144]
In the second re-encoding process, the two states of (1) a chromatic color character portion and (2) an achromatic color character portion are merged and degenerated into one state (1 ′) character portion. As a result, the following two states are obtained.
[0145]
(1 ') Character part
(3 ') Non-character part
This time, the data “2” is replaced with “3” to degenerate the above state. The data after the state degeneration is changed to the data shown in FIG. This data is the same as the data in FIG. The encoded data obtained by packing this into Packbits FIG. 20 (e) is naturally the same encoded data as FIG. 19 (e).
[0146]
When the number of states is reduced by one, the 15-byte data before re-encoding is reduced to 11 bytes by the first re-encoding, and finally reduced to 6 bytes by the second re-encoding. Since it is possible to obtain a code amount that changes finely and decreases in this way, it is possible to obtain compressed data of an image area flag that is close to the target code amount.
[0147]
As described above, the lossless encoding process of the image area flag data is controlled independently of the compression encoding process of the image data, and each is stored in data within the target code amount.
[0148]
The encoded two types of data are multiplexed when output to a network device, an image output device, a mass storage device, or the like connected to the outside. Considering the multiplexing, the unit for encoding the two types of data is matched to the same size as described above, and the encoded data generated by encoding one unit is stored in one packet or file. Manage and store as When multiplexing, two types of packet data having the same image position are connected in the order of, for example, image data and image area data to form one packet and output to the outside.
[0149]
<Second Embodiment>
In the second embodiment, the present invention is applied to the configuration of FIG. 2, and the configuration is shown in FIG. In the figure, the functional blocks used in FIGS. 2 and 17 are used. The same numbers are assigned to the blocks, and the description is omitted.
[0150]
In the second embodiment, two types of image area information having different information entropy are losslessly encoded by the two encoding units in the same way as the image data compression encoding processing in the configuration of FIG. These two encoding units are a first
[0151]
The other blocks added in the present embodiment are only the
[0152]
In FIG. 21, a block for compressing and encoding image data and a block for reversibly encoding image area information have the following correspondence.
(1) First and second encoding units and first and second lossless encoding units
(2) First, second and third counters and fourth, sixth and fifth counters
(3) Re-encoding unit and lossless code re-encoding unit
(4) Encoding sequence control unit and lossless encoding control unit
Image data is compression-encoded using the former blocks of the above items, and image area information is losslessly encoded using the latter blocks. The two encoding processes are independently controlled in almost the same manner, and each data is compressed to a target code amount or less.
[0153]
The amount of code for image data is gradually reduced by changing the quantization step, but the image area information is losslessly encoded by reducing the number of states of the flag data of the image area information before lossless encoding. The amount of later code is reduced.
[0154]
In the initial state, the first
[0155]
When the amount of code output from the first lossless encoding unit exceeds the target value, the lossless code stored in the
[0156]
The second lossless encoding unit performs image area information conversion processing that further reduces the number of states of the flag data than before, and performs lossless encoding. By doing so, the first lossless encoding unit generates a lossless code with a smaller code amount and stores it in the second memory.
[0157]
The lossless code in the second memory that has already been encoded by the second lossless encoding unit, that is, the lossless code transferred to the first memory is decoded by the lossless
[0158]
Therefore, the flowchart of the above-described process can be used as it is by changing only a part of the expression of the flowchart for compressing and encoding the image data shown in FIG. The parts to be changed are the following three points, as in the first embodiment.
(1) Encoding process → Lossless encoding process
(2) Change quantization step → Change image area information conversion process
(3) Re-encoding process → Lossless code re-encoding process
FIG. 22 shows a flowchart in which the above three points are changed. The four processing contents of steps S2103, S2109, S2111, and S2113 are changed as described above.
[0159]
Since the compression encoding process of image data and the encoding process of image area information are performed in parallel and controlled independently, the second embodiment shown in FIG. 21 is processed according to the two flowcharts of FIGS. A flow can be defined.
[0160]
The processes of the first and second embodiments described above can be realized by a computer program by a general-purpose information processing apparatus (for example, a personal computer) equipped with a multitask OS, including the basic part described first. Therefore, the present invention can also be applied to such a computer program. In this case, those skilled in the art can easily understand that each unit in the block configuration diagrams shown in FIG. 1 and the first and second embodiments can be realized by a module of a computer program or a function program. Therefore, the present invention may be applied to a computer program.
[0161]
In general, when a computer program is installed in a general-purpose information processing apparatus such as a personal computer, it is realized by setting a storage medium (floppy disk, CDROM, MO, etc.) for storing the computer program and installing or copying it. Therefore, the present invention includes such a storage medium as its category.
[0162]
As described above, according to the present embodiment, decoding means for decoding losslessly encoded image area information and a part of the image area information so that the information entropy of the image area information is reduced. Image area information converting means for rewriting or deleting the image area information, re-encoding means for reversibly encoding the image area information obtained by converting the image area information decoded by the decoding means by the image area information converting means, A lossless encoding unit including an information conversion unit, and a storage unit capable of storing data obtained by encoding image area information attached to at least one page of image data, and the amount of the encoded data Accordingly, by controlling both the image area information converting means provided in the reversible converting means and the image area information converting means in the preceding stage of the re-encoding means, the image area information for one page is converted into a desired code. Can be stored in the data volume
[0163]
【The invention's effect】
As described above, according to the present invention, it is possible to encode multi-value image data and its image area information so as to be within a target size without re-inputting multi-value image data.
[Brief description of the drawings]
FIG. 1 is a diagram showing a first basic configuration of an image processing apparatus to which the present invention is applied.
FIG. 2 is a diagram illustrating a second basic configuration of an image processing apparatus to which the present invention is applied.
FIG. 3 is a flowchart showing a simplified process in the configuration of FIG. 1;
FIG. 4 is a diagram illustrating a data flow and memory contents in an encoding phase in an initial state.
FIG. 5 is a diagram showing a data flow and memory contents in an encoding / re-encoding phase.
FIG. 6 is a diagram illustrating a data flow and memory contents in a transfer phase.
FIG. 7 is a diagram illustrating a data flow and memory contents in an encoding phase after a transfer phase.
FIG. 8 is a flowchart showing details of processing in the configuration of FIG. 1;
9 is a diagram showing a data flow and memory contents in an encoding / re-encoding phase in the modification of the configuration of FIG. 1; FIG.
10 is a diagram showing a data flow and memory contents in a transfer phase in the modification of FIG. 9;
11 is a diagram showing a data flow and memory contents in an encoding phase after a transfer phase in the modification of FIG.
12 is a flowchart showing a processing procedure in the configuration of FIG. 2;
13 is a diagram showing a data flow and memory contents in an encoding phase in an initial state in the configuration of FIG.
14 is a diagram showing a data flow and memory contents in a transfer phase in the configuration shown in FIG.
15 is a diagram illustrating a data flow and memory contents in an encoding / re-encoding phase in the configuration of FIG.
16 is a diagram illustrating a data flow and memory contents in an encoding phase after an encoding / re-encoding phase in the configuration of FIG. 2;
FIG. 17 is a block configuration diagram of an apparatus according to the first embodiment of the present invention.
FIG. 18 is a flowchart showing a processing procedure in the first embodiment.
FIG. 19 is a diagram illustrating encoded data of a lossless code and encoded data after re-encoding in the first embodiment.
FIG. 20 is a diagram illustrating another example of encoded data after re-encoding of lossless code and encoded data after re-encoding.
FIG. 21 is a diagram illustrating encoded data after re-encoding of the lossless code and encoded data after re-encoding according to the second embodiment.
FIG. 22 is a flowchart showing a processing procedure in the second embodiment.
Claims (9)
圧縮符号化された多値画像データ及び像域情報を格納するメモリを備え、
前記多値画像圧縮手段は、
圧縮率を決定するパラメータが変更可能な第1の多値画像圧縮手段と、
圧縮率を決定するパラメータが変更可能であって、前記第1の多値画像圧縮手段で圧縮した符号データを復号し、再圧縮する第2の多値画像圧縮手段と、
前記第1の多値画像圧縮手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する画像データ符号量監視手段と、
該画像データ符号量監視手段によって前記所定量に達したと判断した場合、前記第1、第2の多値画像圧縮手段へ圧縮率を変更するパラメータを設定する画像符号パラメータ設定手段と、
該画像符号パラメータ設定手段によりパラメータを変更した場合、前記第1の多値画像圧縮手段で従前に生成された符号データを前記第2の多値画像圧縮手段によって再符号化させ、当該再符号化を済ませた符号データを、前記第1の多値画像圧縮手段のパラメータ変更後の符号データとして前記メモリに保存させると共に、
パラメータ変更後の前記第1の多値画像圧縮手段で生成された符号化データを、後続符号データとして前記メモリに保存させる画像圧縮制御手段とを備え、
前記像域情報圧縮手段は、
前記像域情報を可逆符号化する第1の像域情報圧縮手段と、
該第1の像域情報圧縮手段で符号化された像域情報を復号し、一部の種類の情報を縮退させて再度可逆符号化する第2の像域情報圧縮手段と、
前記第1の像域情報圧縮手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する像域情報量監視手段と、
該像域情報量監視手段によって前記所定量に達したと判断した場合、縮退させる像域情報の種類を、前記第1、第2の像域情報圧縮手段へパラメータとして設定する像域符号パラメータ設定手段と、
該像域符号パラメータ設定手段によりパラメータを変更した場合、前記第1の像域情報圧縮手段で従前に生成された符号データを前記第2の像域情報圧縮手段によって再符号化させ、当該再符号化を済ませた符号データを、前記第1の像域情報圧縮手段のパラメータ変更後の符号データとして前記メモリに保存させると共に、
パラメータ変更後の前記第1の像域情報圧縮手段で生成された符号化データを、後続符号データとして前記メモリに保存させる像域圧縮制御手段とを備える
ことを特徴とする画像処理装置。An image processing device that inputs multi-value image data and image area information of each pixel of the multi-value image data and includes independent multi-value image compression means and image area information compression means,
A memory for storing compression-coded multi-value image data and image area information;
The multi-value image compression means includes
A first multi-valued image compression means capable of changing a parameter for determining a compression rate;
A second multi-valued image compressing unit that can change a parameter for determining a compression rate, decodes the code data compressed by the first multi-valued image compressing unit, and re-compresses;
An image data code amount monitoring unit that monitors the code amount generated by the first multi-value image compression unit and determines whether or not the code data amount has reached a predetermined amount;
An image code parameter setting unit that sets a parameter for changing a compression rate to the first and second multi-valued image compression units when the image data code amount monitoring unit determines that the predetermined amount has been reached;
When the parameter is changed by the image code parameter setting means, the code data previously generated by the first multi-value image compression means is re-encoded by the second multi-value image compression means, and the re-encoding is performed. the code data finished the, dissipate stored in the memory as the code data after the parameter change in the first multivalued image compressing means,
Image compression control means for storing the encoded data generated by the first multi-value image compression means after parameter change in the memory as subsequent code data;
The image area information compression means includes:
First image area information compression means for reversibly encoding the image area information;
A second image area information compression means for decoding the encoded image area information, again lossless encoding by degenerated some types of information in the image area information compression means first,
An image area information amount monitoring means for monitoring the code amount generated by the first image area information compression means and determining whether the code data amount has reached a predetermined amount;
If it is determined to have reached the predetermined amount by said image area information amount monitoring means, the type of image area information to be degenerated, the first image area code parameter to be set in the second image area information compression means as parameters Setting means;
When the parameter is changed by the image area code parameter setting means, the code data previously generated by the first image area information compression means is re-encoded by the second image area information compression means, and the re-encoding is performed. the sign-data finished the reduction, causes stored in the memory as the code data after the parameter change in the first image area information compression means,
An image processing apparatus comprising: image area compression control means for storing the encoded data generated by the first image area information compression means after the parameter change in the memory as subsequent code data.
前記像域符号量監視手段が符号データ量が目標データ量を越えると2回目に判断した場合、前記像域符号パラメータ設定手段は文字線画にあって無彩色であることを示す画素の像域情報を有彩色を示す像域情報に変更するためのパラメータを設定する
ことを特徴とする請求項第4に記載の画像処理装置。When the image area code amount monitoring means first determines that the code data amount exceeds the target data amount, the image area code parameter setting means is an image area of a pixel indicating that the image area code parameter setting means is in a halftone area and is achromatic. set parameters for changing the image area information indicating the chromatic and information,
When the image area code amount monitoring means determines that the code data amount exceeds the target data amount for the second time, the image area code parameter setting means is the image area information of the pixel indicating that it is an achromatic color in the character line image The image processing apparatus according to claim 4, wherein a parameter for changing the image area information to chromatic color is set .
前記多値画像圧縮工程は、
圧縮率を決定するパラメータが変更可能な第1の多値画像圧縮工程と、
圧縮率を決定するパラメータが変更可能であって、前記第1の多値画像圧縮工程で圧縮した符号データを復号し、再圧縮する第2の多値画像圧縮工程と、
前記第1の多値画像圧縮工程によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する画像データ符号量監視工程と、
該画像データ符号量監視工程によって前記所定量に達したと判断した場合、前記第1、第2の多値画像圧縮工程に圧縮率を変更するパラメータを設定する画像符号パラメータ設定工程と、
該画像符号パラメータ設定工程によりパラメータを変更した場合、前記第1の多値画像圧縮工程で従前に生成された符号データを前記第2の多値画像圧縮工程によって再符号化させ、当該再符号化を済ませた符号データを、前記第1の多値画像圧縮工程のパラメータ変更後の符号データとして所定のメモリに保存させると共に、
パラメータ変更後の前記第1の多値画像圧縮工程で生成された符号化データを、後続符号データとして前記メモリに保存させる画像圧縮制御工程とを備え、
前記像域情報圧縮工程は、
前記像域情報を可逆符号化する第1の像域情報圧縮工程と、
該第1の像域情報符号化工程で符号化された像域情報を復号し、一部の種類の情報を縮退させて再度可逆符号化する第2の像域情報圧縮工程と、
前記第1の像域情報圧縮工程によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する像域情報量監視工程と、
該像域情報量監視工程によって前記所定量に達したと判断した場合、縮退させる像域情報の種類を、前記第1、第2の像域圧縮工程へパラメータとして設定する像域符号パラメータ設定工程と、
該像域符号パラメータ設定工程によりパラメータを変更した場合、前記第1の像域情報圧縮工程で従前に生成された符号データを前記第2の像域情報圧縮工程によって再符号化させ、当該再符号化を済ませた符号データを、前記第1の像域情報圧縮工程のパラメータ変更後の符号データとして前記メモリに保存させると共に、
パラメータ変更後の前記第1の像域情報圧縮工程で生成された符号化データを、後続符号データとして前記メモリに保存させる像域圧縮制御工程と備える
ことを特徴とする画像処理装置の制御方法。A method of controlling an image processing apparatus that includes multi-value image data and image area information of each pixel of the multi-value image data, and includes an independent multi-value image compression step and an image area information compression step, respectively.
The multi-value image compression step includes:
A first multi-value image compression step in which a parameter for determining a compression ratio can be changed;
A second multi-valued image compressing step that can change a parameter for determining a compression rate, decodes the code data compressed in the first multi-valued image compressing step, and recompresses;
An image data code amount monitoring step of monitoring the code amount generated by the first multi-value image compression step and determining whether or not the code data amount has reached a predetermined amount;
An image code parameter setting step for setting a parameter for changing a compression rate in the first and second multi-valued image compression steps when it is determined that the predetermined amount has been reached by the image data code amount monitoring step;
When the parameter is changed by the image code parameter setting step, the code data previously generated in the first multi-value image compression step is re-encoded by the second multi-value image compression step, and the re-encoding is performed. The code data that has been completed is stored in a predetermined memory as code data after the parameter change in the first multi-value image compression step,
An image compression control step for storing the encoded data generated in the first multi-value image compression step after the parameter change in the memory as subsequent code data,
The image area information compression step includes:
A first image area information compression step for lossless encoding of the image area information;
A second image area information compression step that decodes the image area information encoded in the first image area information encoding step, degenerates some types of information, and performs lossless encoding again;
An image area information amount monitoring step of monitoring the code amount generated by the first image area information compression step and determining whether the code data amount has reached a predetermined amount;
An image area code parameter setting step for setting the type of image area information to be degenerated as a parameter to the first and second image area compression steps when it is determined by the image area information amount monitoring step that the predetermined amount has been reached. When,
When the parameter is changed in the image area code parameter setting step, the code data previously generated in the first image area information compression step is re-encoded in the second image area information compression step, and the re-encoding is performed. The code data that has been converted to the first image area information compression step is stored in the memory as code data after the parameter change in the first image area information compression step ,
A control method for an image processing apparatus, comprising: an image area compression control step for storing encoded data generated in the first image area information compression step after parameter change in the memory as subsequent code data.
前記多値画像圧縮手段は、
圧縮率を決定するパラメータが変更可能な第1の多値画像圧縮手段と、
圧縮率を決定するパラメータが変更可能であって、前記第1の多値画像圧縮手段で圧縮した符号データを復号し、再圧縮する第2の多値画像圧縮手段と、
前記第1の多値画像圧縮手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する画像データ符号量監視手段と、
該画像データ符号量監視手段によって前記所定量に達したと判断した場合、前記第1、第2の多値画像圧縮手段へ圧縮率を変更するパラメータを設定する画像符号パラメータ設定手段と、
該画像符号パラメータ設定手段によりパラメータを変更した場合、前記第1の多値画像圧縮手段で従前に生成された符号データを前記第2の多値画像圧縮手段によって再符号化させ、当該再符号化を済ませた符号データを、前記第1の多値画像圧縮手段のパラメータ変更後の符号データとして所定のメモリに保存させると共に、
パラメータ変更後の前記第1の多値画像圧縮手段で生成された符号化データを、後続符号データとして前記メモリに保存させる画像圧縮制御手段として機能させ、
前記像域情報圧縮手段は、
前記像域情報を可逆符号化する第1の像域情報圧縮手段と、
該第1の像域情報圧縮手段で符号化された像域情報を復号し、一部の種類の情報を縮退させて再度可逆符号化する第2の像域情報圧縮手段と、
前記第1の像域情報圧縮手段によって生成される符号量を監視すると共に、当該符号データ量が所定量になったか否かを判断する像域情報量監視手段と、
該像域情報量監視手段によって前記所定量に達したと判断した場合、縮退させる像域情報の種類を、前記第1、第2の像域情報圧縮手段へパラメータとして設定する像域符号パラメータ設定手段と、
該像域符号パラメータ設定手段によりパラメータを変更した場合、前記第1の像域情報圧縮手段で従前に生成された符号データを前記第2の像域情報圧縮手段によって再符号化させ、当該再符号化を済ませた符号データを、前記第1の像域情報圧縮手段のパラメータ変更後の符号データとして前記メモリに保存させると共に、
パラメータ変更後の前記第1の像域情報圧縮手段で生成された符号化データを、後続符号データとして前記メモリに保存させる像域圧縮制御手段として機能させる
ことを特徴とするコンピュータプログラム。 By reading the computer and executing it, the computer inputs multi-value image data and image area information of each pixel of the multi-value image data, and functions as an independent multi-value image compression means and image area information compression means , respectively. A computer program,
The multi-value image compression means includes
A first multi-valued image compression means capable of changing a parameter for determining a compression rate;
A second multi-valued image compressing unit that can change a parameter for determining a compression rate, decodes the code data compressed by the first multi-valued image compressing unit, and re-compresses;
An image data code amount monitoring unit that monitors the code amount generated by the first multi-value image compression unit and determines whether or not the code data amount has reached a predetermined amount;
If it is determined to have reached the predetermined amount by the image data coding amount monitoring means, and the image coding parameter setting means for setting a parameter for changing the compression ratio to said first, second multi-level image compression means,
If you change the parameters by the image encoding parameter setting means, to re-encode the code data generated previously in the first multi-level image compression means by said second multi-level image compression means, the re-encoding The code data that has been processed is stored in a predetermined memory as code data after the parameter change of the first multi-value image compression means ,
The encoded data generated by the first multi-valued image compression means after the parameter change is caused to function as an image compression control means for storing in the memory as subsequent code data ,
The image area information compression means includes:
First image area information compression means for reversibly encoding the image area information;
A second image area information compression means for decoding the encoded image area information, again lossless encoding by degenerated some types of information in the image area information compression means first,
An image area information amount monitoring means for monitoring the code amount generated by the first image area information compression means and determining whether the code data amount has reached a predetermined amount;
If it is determined to have reached the predetermined amount by said image area information amount monitoring means, the type of image area information to be degenerated, the first image area code parameter to be set in the second image area information compression means as parameters Setting means ;
If you change the parameter by said image region code parameter setting means, the code data generated previously in the first image area information compression means to re-encoding by said second image area information compression means, the recoding the sign-data finished the reduction, causes stored in the memory as the code data after the parameter change in the first image area information compression means,
A computer program that causes the encoded data generated by the first image area information compression means after the parameter change to function as image area compression control means for storing in the memory as subsequent code data.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001285682A JP4693309B2 (en) | 2001-09-19 | 2001-09-19 | Image processing apparatus, control method therefor, computer program, and storage medium |
EP02255970.2A EP1292153B1 (en) | 2001-08-29 | 2002-08-28 | Image processing method and apparatus, computer program, and storage medium |
CNB021422478A CN1320809C (en) | 2001-08-29 | 2002-08-28 | Picture processing device and method, and computer program and storage medium |
US10/230,276 US7257264B2 (en) | 2001-08-29 | 2002-08-29 | Image processing apparatus and method for compression-encoding image area information |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001285682A JP4693309B2 (en) | 2001-09-19 | 2001-09-19 | Image processing apparatus, control method therefor, computer program, and storage medium |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003101793A JP2003101793A (en) | 2003-04-04 |
JP2003101793A5 JP2003101793A5 (en) | 2008-10-30 |
JP4693309B2 true JP4693309B2 (en) | 2011-06-01 |
Family
ID=19108795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001285682A Expired - Fee Related JP4693309B2 (en) | 2001-08-29 | 2001-09-19 | Image processing apparatus, control method therefor, computer program, and storage medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4693309B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447384B2 (en) | 2002-09-27 | 2008-11-04 | Canon Kabushiki Kaisha | Image processing method and apparatus |
JP4440052B2 (en) | 2004-09-14 | 2010-03-24 | キヤノン株式会社 | Image coding apparatus and image coding method |
GB2432985A (en) * | 2005-12-05 | 2007-06-06 | Univ Robert Gordon | Encoder control system based on a target encoding value |
JP6186429B2 (en) | 2013-04-12 | 2017-08-23 | 株式会社スクウェア・エニックス・ホールディングス | Information processing apparatus, control method, program, and recording medium |
JP6377222B2 (en) * | 2017-07-31 | 2018-08-22 | 株式会社スクウェア・エニックス・ホールディングス | Information processing apparatus, control method, program, and recording medium |
CN116744006B (en) * | 2023-08-14 | 2023-10-27 | 光谷技术有限公司 | Video monitoring data storage method based on block chain |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11196410A (en) * | 1997-12-25 | 1999-07-21 | Victor Co Of Japan Ltd | Method and device for dynamic picture encoding and dynamic picture signal record medium |
JPH11346365A (en) * | 1998-04-03 | 1999-12-14 | Matsushita Electric Ind Co Ltd | Encoding/compression method and device |
JP2000197010A (en) * | 1998-12-28 | 2000-07-14 | Victor Co Of Japan Ltd | Picture data editing device |
JP2001094980A (en) * | 1999-09-21 | 2001-04-06 | Sharp Corp | Data processor |
JP2001204028A (en) * | 1999-04-13 | 2001-07-27 | Matsushita Electric Ind Co Ltd | Coded data conversion method, re-coding method, re- coding system, and data recording medium |
-
2001
- 2001-09-19 JP JP2001285682A patent/JP4693309B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11196410A (en) * | 1997-12-25 | 1999-07-21 | Victor Co Of Japan Ltd | Method and device for dynamic picture encoding and dynamic picture signal record medium |
JPH11346365A (en) * | 1998-04-03 | 1999-12-14 | Matsushita Electric Ind Co Ltd | Encoding/compression method and device |
JP2000197010A (en) * | 1998-12-28 | 2000-07-14 | Victor Co Of Japan Ltd | Picture data editing device |
JP2001204028A (en) * | 1999-04-13 | 2001-07-27 | Matsushita Electric Ind Co Ltd | Coded data conversion method, re-coding method, re- coding system, and data recording medium |
JP2001094980A (en) * | 1999-09-21 | 2001-04-06 | Sharp Corp | Data processor |
Also Published As
Publication number | Publication date |
---|---|
JP2003101793A (en) | 2003-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7257264B2 (en) | Image processing apparatus and method for compression-encoding image area information | |
US7106911B2 (en) | Image processing apparatus and control method for inputting image data and encoding the data | |
US7227998B2 (en) | Image processing apparatus, control method of the same, computer program, and computer-readable storage medium | |
JP3902968B2 (en) | Image processing apparatus, control method therefor, computer program, and storage medium | |
US7680345B2 (en) | Image encoding apparatus and method, computer program, and computer-readable storage medium | |
US7561749B2 (en) | Apparatus, method, and computer-readable storage medium for lossy and lossless encoding of image data in accordance with an attribute of the image data | |
US7466863B2 (en) | Image encoding apparatus and method, computer program, computer-readable storage medium, and image forming apparatus | |
US7454070B2 (en) | Image encoding apparatus and method, computer program, and computer-readable storage medium | |
US7627181B2 (en) | Image encoding apparatus and method, computer program, and computer-readable storage medium | |
US20030164975A1 (en) | Image processing apparatus and image processing method | |
US20080069464A1 (en) | Image encoding apparatus and control method thereof | |
JP2004530341A (en) | JADE-JPEG based adaptive document compression engine | |
JP4065522B2 (en) | Image processing apparatus and control method thereof | |
JP3902953B2 (en) | Image processing apparatus and method, computer program, and storage medium | |
JP4693309B2 (en) | Image processing apparatus, control method therefor, computer program, and storage medium | |
JP3984813B2 (en) | Image processing apparatus and method, computer program, and storage medium | |
JP4124982B2 (en) | Image processing apparatus and method, computer program, and storage medium | |
JP3840076B2 (en) | Image processing apparatus and method, computer program, and storage medium | |
JP3902954B2 (en) | Image processing apparatus and method, computer program, and storage medium | |
JP3902983B2 (en) | Image processing apparatus, control method therefor, computer program, and storage medium | |
JP4035475B2 (en) | Image processing apparatus, control method therefor, computer program, and storage medium | |
JP4035471B2 (en) | Image processing apparatus, control method therefor, computer program, and storage medium | |
JP2001217722A (en) | Device and method for encoding information, and computer readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080912 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080912 |
|
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: 20110221 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110222 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140304 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |