JP4697966B2 - 画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 - Google Patents

画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 Download PDF

Info

Publication number
JP4697966B2
JP4697966B2 JP2006056901A JP2006056901A JP4697966B2 JP 4697966 B2 JP4697966 B2 JP 4697966B2 JP 2006056901 A JP2006056901 A JP 2006056901A JP 2006056901 A JP2006056901 A JP 2006056901A JP 4697966 B2 JP4697966 B2 JP 4697966B2
Authority
JP
Japan
Prior art keywords
encoded data
encoding
pixel block
image
interest
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006056901A
Other languages
English (en)
Other versions
JP2007235758A (ja
JP2007235758A5 (ja
Inventor
宏和 田村
直樹 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006056901A priority Critical patent/JP4697966B2/ja
Priority to US11/680,378 priority patent/US7925098B2/en
Publication of JP2007235758A publication Critical patent/JP2007235758A/ja
Publication of JP2007235758A5 publication Critical patent/JP2007235758A5/ja
Application granted granted Critical
Publication of JP4697966B2 publication Critical patent/JP4697966B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、画像データの圧縮符号化技術に関するものである。
従来、静止画像の圧縮方式には、離散コサイン変換を利用したJPEG方式や、Wavelet変換を利用した方式が多く使われている。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像毎に符号量が変化する。
国際標準化方式であるJPEG方式では、1ページの画像に対して1組の量子化マトリクスしか定義できない。それ故、原稿をスキャンし、画像データを符号化する場合、その結果得られた符号化データ量が、目標とする予定した符号量を越えることも当然に起こりえる。
従って、予定した符号量をオーバーした場合は、圧縮率を変更するため量子化マトリクスを変更して、原稿の再読み込みを行なうのが一般的である。また、予めプリスキャンによる符号量見積もりを行ない、符号量を調整するために、量子化パラメータの再設定を行なう方法もある。
従来、プリスキャンを行う符号量制御方式として、例えば、プリ圧縮したデータを内部バッファメモリに入れ、これを伸長し、圧縮パラメータを変え、本圧縮し、外部記憶に出力する方式が知られている。このとき、本圧縮は、プリ圧縮よりも圧縮率を高めにする必要がある。
また、例えば、画素ブロックごとの許容符号量を求め、符号量を減らすために、DCT係数をn回レベルシフトした係数をハフマン符号化する方式が知られており、このシフト量nは許容符号量から決定される。
また、一度の画像入力により、効果的にサイズに収まる符号化データを生成する方法もある(特許文献1)。この手法は、符号化データを格納するための2つのメモリを用意し、生成された符号化データを両メモリに格納していくものである。そして、格納した符号化データ量が目標データ量に到達したとき、より高い圧縮率となるような大きな量子化ステップを設定すると共に、一方のメモリ(第1のメモリ)をクリアする。これにより、目標データ量に到達した以降の符号化の圧縮率と高くする。また、もう一方のメモリ(第2のメモリ)には、発生した符号量が目標データ量に到達する以前の符号化データが格納されているので、更に高い量子化ステップで再符号化を行い、再符号化結果を第1のメモリに格納する。そして、この処理を、データ量が目標データ量に達する毎に繰り返るものである。
また、これら非可逆方式のみでなく、可逆符号化方式を取り入れて、文字画像や、線画等の非自然画等に可逆符号化方式を用い、自然画部に非可逆符号化方式を用いる方法がとられている。これらはあらかじめその画像の部分部分において属性を判定しておき、その判定結果を用いて符号化方式を切り替える方法がとられている(特許文献2)。

また,上記のような可逆符号化方式と非可逆符号化方式の切り替えに、属性判断を必要とすることなく、その符号量から切り替えを行う方式もある.
特開2003−8903号公報 特開平7−123273号公報
しかしながら、上記の非可逆処理においては、画像の全種別に対して画質が満足するかどうかは保証されていない。さらには、データ量が目標符号量に収まらなかった場合には、量子化ステップをより大きなものとし、画像全体の圧縮率を一律に引き上げることになり、画像劣化を引き起こす可能性が高い。特に、文字/線画及び自然画が混在した画像を圧縮符号化する場合には問題が多い。なぜなら、自然画については量子化ステップの引き上げても画質に与える影響は少ないものの、文字/線画の場合そのエッジが不明瞭になってきてしまうからである。
かかる点、文字/線画については可逆符号化、自然画については非可逆符号化を行うことで、それぞれの像域に特化した符号化することが望ましい。しかしながら、これを実現するためには、前処理として像域毎の属性判断処理を行う必要があるし、その判定には高い精度が要求される。従って、装置が実行する処理が複雑にならざるをえず、コスト高になることは避けられない。
理想的には、1ページの全域を可逆符号化することである。なぜなら、可逆であるが故に、原理的に原稿画像データに完全に復元できるからである。しかし、可逆符号化の場合、非可逆符号化と違って圧縮率を調整することはできない。従って、可逆符号化して得られた符号化データ量が目標符号量に収まらない場合には、もはやそれ以上の対処は難しい。
また、1回めのスキャンでは可逆符号化を行ない、その結果が目標符号量を越えた場合には非可逆符号化を行なうということも考えられる。しかし、非可逆符号化の場合、先に説明したように、1ページ全域について用いる量子化ステップは1つだけである。従って、採用する量子化マトリクスによっては原稿画像中の文字/線画の像域の画質劣化は避けられない。
本発明は上記の問題に鑑みなされたものである。また、格別な像域判定技術を用いずとも、自然画、文字/線画、或いは、それらが混在した画像に対し、適応的に可逆符号化と非可逆符号化を切り替え、且つ、復号結果の文字/線画部分については違和感の発生しない画像圧縮技術を提供しようとするものである。
更にまた、本発明は、目標符号量以下の符号化データを生成する技術を提供する。
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
1ページの画像データ中のM0×N0個の画素で構成される画素ブロックを単位に入力し、符号化する画像符号化装置であって、
入力する画像データ中の、着目しているM0×N0サイズの画素ブロックを、解像度変換することでM1×N1サイズの画素ブロック(M1<M0、N1<N0)を生成する解像度変換手段と、
該解像度変換手段で変換されたM1×N1サイズの画素ブロック単位に、非可逆符号化データを生成する第1の符号化手段と、
前記解像度変換手段で得られたM1×N1サイズの画素ブロックと、解像度変換前のM0×N0サイズの画素ブロックとの誤差を演算する誤差演算手段と、
前記着目しているM0×N0個の画素で構成される画素ブロック単位に可逆符号化データを生成する第2の符号化手段と、
前記着目しているM0×N0サイズの画素ブロック内の色数分布に関する色数分布情報を抽出する色数情報抽出手段と、
該色数情報抽出手段で抽出された色数分布情報と、前記誤差演算手段で得られた誤差に基づき、前記着目しているM0×N0サイズの画素ブロックが予め設定された特徴を有するか否かを判断する判断手段と、
該判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合、前記第1、第2の符号化手段で得られたいずれか一方の符号化データを、着目画素ブロックの符号化データとして選択し、
前記判断手段によって前記着目している画素ブロックが前記特徴を有しないと判断された場合であって、前記第1の符号化手段で得られた非可逆符号化データのデータ量をLy、前記第2の符号化手段で得られた可逆符号化データ量をLx、及び、予め設定された非線形の境界関数をf()と定義したとき、
条件:Ly≧f(Lx)
を満たす場合には、前記可逆符号化データを着目画素ブロックに対する符号化データとして選択し、前記条件を満たさない場合には、前記非可逆符号化データを着目画素ブロックに対する符号化データとして選択する選択手段と、
該選択手段で選択された符号化データを出力用メモリに出力する出力手段とを備える。
本発明によれば、格別な像域判定技術を用いずとも、自然画、文字/線画、或いは、それらが混在した画像に対し、適応的に可逆符号化と非可逆符号化を切り替え、且つ、復号結果の文字/線画部分については違和感が発生しないようにできる。また、更に、目標符号量以下の符号化データを生成することも可能になる。
以下、図面に従って本発明に係る実施形態を詳細に説明する。
<装置概要の説明>
図11は、実施形態が適用する複写機のブロック構成図である。
図中、1は装置全体の制御を司る制御部であり、CPU、ROM、RAM等で構成される。2はLCD表示器や各種スイッチ、ボタン等で構成される操作部である。3は原稿読取部(イメージスキャナ部)であり、ADF(Auto Document Feeder)を搭載している。読取った画像はRGB各色成分毎に8ビット(256階調)のデジタルデータを出力する。4は、不図示のインタフェース(ネットワークインタフェースを含む)を介して、クライアント端末から受信したPDL形式の印刷データに基づき、印刷画像を描画するレンダリング部である。5はセレクタであり、制御部1からの指示に従って、原稿読取部3、又は、レンダリング部4から出力されたビットマップイメージのいずれか一方を選択し、出力する。
6は本実施形態の特徴部分である符号化処理部である。この符号化処理部6の詳細な後述するが、画像データの符号化するものである。
7は2次記憶装置(実施形態ではハードディスク装置とする)であり、符号化処理部6より出力された1ページの符号化データを順に格納記憶する。
8は、復号処理部であって、2次記憶装置7に格納された圧縮符号化された画像データを、その格納順(ページ順)に読出し、復号する。9は画像処理部であって、復号処理部8からの復号画像を入力し、RGB色空間を記録色空間であるYMCへの変換、UCR(Under Color Removal)処理を行うと共に、画像データの補正処理を行う。
10はプリンタエンジン部である。プリンタエンジン部の印刷機構は、レーザビームプリンタエンジンとするが、インク液を吐出するタイプでも構わず、その種類は問わない。
上記構成において、例えば、利用者が操作部2を操作して、複写モードを選択し、原稿を原稿読取部3(のADF)にセットし、複写開始キーを押下したとする。この場合、原稿読取部3で読取られた原稿画像データは、ラスター順に、セレクタ5を介して符号化処理部6に転送され、ここで圧縮符号化されて2次記憶装置7に格納していく。
また、外部より印刷データを受信した場合には、セレクタ5をレンダリング部4を選択するようにし、レンダリング部4が生成した印刷データに基づく画像を圧縮符号化し、2次記憶装置7に格納することになる。
復号処理部8は、プリンタエンジン10の印刷速度に応じて、2次記憶装置7から圧縮符号化データを読出し、復号処理する。そして、画像処理部9で復号した画像データからYMCK成分の記録用画像データを生成する。そして、その結果をプリンタエンジン部10に出力し、印刷を行う。
上記の通り、2次記憶装置7への圧縮符号化データの格納処理と、復号し印刷するための読出し処理は、非同期である。つまり、2次記憶装置7は画像圧縮処理と、復号処理との間に介在するバッファとして機能する。従って、原稿読取り/符号化処理は、復号/記録処理に非依存なので、多数の原稿を高速に読取ることができ、次のジョブの原稿読取りにすばやく移行することが可能になる。
以上、実施形態における装置全体の構成について説明した。次に、本装置の特徴部分である符号化処理部6について説明する。
<符号化部の説明>
図1は実施形態における符号化処理部6のブロック構成図である。
入力部101は、複数ライン分のラインバッファーメモリを内蔵し、先に説明したように、セレクタ5を介して、原稿読取部3もしくはレンダリング部4からの画像データをラスター順に入力し、内部のラインバッファーに格納する。また、入力部101は、N×M画素ブロック(実施形態では16×16画素ブロックとした)単位に出力する。
解像度変換部106は、入力された画像データの解像度変換を行なう。この解像度変換は、水平2画素×垂直2画素の4画素から1画素を生成し、水平、垂直とも解像度を1/2にする。この解像度を下げる技術としては、2×2画素中の予め決められた位置の画素を代表画素として抽出する処理、あるいは、2×2画素の平均値を求めるで行なう。ただし、これ以外の既知の解像度変換法を使ってもかまわない。
先に説明したように、入力部101からは16×16画素単位のデータが出力されるので、解像度変換部106は結局のところ8×8画素のデータを出力することになる。なお、実施形態では解像度変換部106は、入力画像の解像度を1/2に落とすものとして説明しているが、これは一例であって他の値でも構わない。
差分算出部107は、入力画像データと解像度変換後の画像データからどれだけ変化したか、差分算出を行う。この差分の算出方法は、例えば次の通りである。
解像度変換部106から出力された1つの画素をP0とする。また、この画素P0の元になった入力画像中の2×2画素をP1、P2、P3、P4とする。差分算出部107は、差分dを次のようにして求める。
d=|P0−P1|+|P0−P2|+|P0−P3|+|P0−P4|
ここで、|x|はxの絶対値を意味する。なお、カラー画像の場合、各画素がR、G、B等の色成分値を持つことになるので、上記式を各成分毎に演算することになる。
なお、絶対値を算出する代わりに、
d=(P0−P1)2+(P0−P2)2+(P0−P3)2+(P0−P4)2
として求めてもよい。
解像度変換部106からは8×8画素=64個の画素データが出力されるので、差分演算部107は、その64個の画素について上記差分d(=d1、d2、d3、…d64)を求める。そして、差分値diの合算した値を、入力画像の16×16画素に対する解像度変換後の差分値Dとして次のようにして求める。
D=Σdi
そして、差分算出部107は、求められた差分値Dを画像判定部112に出力する。差分値Dの値が大きいほど、解像度変換後の8×8画素ブロックで構成される部分画像の画質は、オリジナル画像の対応する部分画像に対して劣化の度合が大きいことを意味する。従って、かかる意味を持つ情報を得るのであれば、差分の絶対値を求める代わりに、MSE、PSNR、分散や標準偏差を求めるようにしても構わない。
なお、差分値Dが小さい値になるのは、入力画像が自然画等の場合である。なぜなら、自然画の場合、隣接する画素の値の差は小さいので、必然的に、P1,P2,P3,P4とP0との差も小さな値になるからである。
また、差分値Dは、上記の通り、オリジナル画像の16×16画素で表わされる部分画像を解像度変換した場合に、どれだけ誤差が生じたかを示す指標情報と見ることができるので、これ以降、この差分値Dを解像度変換誤差情報と言う。
図1の説明に戻る。第1の符号化部102は、解像度変換部107から出力された8×8画素ブロック単位に、非可逆符号化処理を行なって符号化データ(非可逆符号化データ)を生成し、第1のメモリ制御部104にその符号化データを出力する。ただし、符号化データの先頭には、第1の符号化部102で符号化されたことを示す識別ビット(例えば“0”の値を持つビット)を付加する。
実施形態における、この第1の符号化部102は、JPEG符号化(不可逆符号化)を適用した。つまり、8×8画素単位に相当する画像データを直行変換し、後述する量子化ステップを用いて量子化し、ハフマン符号化処理を行うものである。ここで生成される符号量を左右するのが量子化ステップであり、これは符号化シーケンス制御部110により設定される。JPEG符号化は、自然画に適した技術として知られている。
図10はDCT変換後の周波数係数を量子化する際に用いる量子化マトリクステーブルQ0、Q1、Q2を示している(符号化シーケンス制御部110に記憶保持されている)。ここで、量子化マトリクステーブル内の値Qi(0、0)〜Qi(7、7)(i=0、1、2…)が量子化ステップ値を意味する。量子化ステップ値は、概ね、Q0<Q1<Q2…の関係にある。量子化ステップ値が大きくなればなるほど、量子化後の周波数係数値の取り得る範囲が狭くなり、圧縮率が向上する。1ページの符号化処理を開始する際に、第1の符号化部102に設定される量子化マトリクスはQ0である。
第2の符号化部103は、第1の符号化部102と異なり、可逆符号化部である。可逆符号化であるため、その復号結果は符号化する前の画像と同じとなり、原理的に画質の劣化は発生しない。実施形態では、この第2の符号化部103は、JPEG−LSを適用した。JPEG−LSは「JPEG」を冠するものの、第1の符号化部102で採用している非可逆符号化JPEGとはそのアルゴリズムは全く異なる。JPEG−LS符号化の特徴は、文字線画、コンピュータグラフィックスに適した技術である。すなわち、JPEG−LSは、これらの画像の場合には、非可逆符号化であるJPEGに与える量子化ステップが“1”(実質可逆)は勿論こと、“2”、“3”等の比較的小さい量子化ステップ値よりも遥かに少ない符号データを生成することができる。
第2の符号化部103は、16×16画素データ単位に入力し、可逆符号化データを生成し、第1のメモリ制御部104に出力する。ただし、可逆符号化データの先頭には、第1の符号化部102で生成された非可逆符号化データと区別するため、その先頭には識別ビット(例えば、“1”のビット)を付加する。
従って、復号処理部8は、この識別ビットが“0”の場合には該当する画素ブロックの符号化データが非可逆符号化データであるものとして復号処理を行なう。そして、且つ、復号して得られた画像を、水平、垂直とも数倍(実施形態では2倍)にして画像を生成する。画像を2倍にするには、復号して得られた1画素と同じ値を持つ2×2画素を生成すればよい。場合によっては、線形補間で画素数を増やすようにしても良い。また、識別ビットが“1”の場合には該当する画素ブロックの符号化データが可逆符号化データであるものとして復号処理を行なえば良いことになる。
また、第2の符号化部103においては、JPEG−LSの処理に則って注目画素データを符号化中、その注目画素の周囲画素群に含まれる色数をカウントしていく。具体的には次の通りである。
図6は、その色数カウントする際のスキャン順を示している。図示において、*印が注目画素を示し、矢印がスキャン方向を示している。16×16画素の領域内の1ラインのスキャンが完了すると、図示の下方向のラインの左端からスキャンを開始する。従って、図示の注目画素の近傍画素a,b,c,dは、既符号化済みの画素となる。
本実施形態では、注目画素の位置が更新される度に、その近傍画素a,b,c,dに含まれる色数が“2”となっている回数をカウントしていく。すなわち、図示の場合、近傍画素の数が4つであるので、最低色数は“1”であり、最大色数は“4”となる。実施形態では、色数“2”の検出が、16×16画素の領域をスキャンしていく最中に、何回検出されたのかを示す色数情報を画像判定部112に出力する。なお、ここでは注目画素を、色数のカウントの対象外としたが、カウント対象としても構わない。
第1の符号化部102と第2の符号化部103は、実質的に同じタイミングで、オリジナル画像の同じ16×16画素データに対応する符号化データを生成する。
第1の符号長検出部108は、第1の符号化部102から出力される画素ブロックの符号化データ長(識別ビットである1ビットを含む)を検出し、符号化シーケンス制御部108に出力する。第2の符号長検出部109は第2の符号化部103から出力される画素ブロックの符号化データ長(識別ビットである1ビットを含む)を検出し、符号化シーケンス制御部108に出力する。
画像判定部112は、第1、第2の符号化部が符号化データを出力するタイミングで、差分算出部107からの解像度変換誤差情報D、及び、第2の符号化部103から出力された色数情報Cと、2つの予め設定された閾値T1、T2との関係が、
条件:D>T1 且つ C>T2 …(1)
を満たすか否かを判定する。そして、上記条件式(1)を満たす場合には“1”、満たさない場合には“0”の画像判定信号Hを符号化シーケンス制御部108に出力する。
上記条件を満たす場合、オリジナル画像の16×16画素領域に含まれる色数は、ほぼ2色と少なく、且つ、高周波成分を多く含んでいることを意味する。典型的には、文字/線画(白地に黒文字や黒線)を意味すると考えると分かりやすい。以下の説明では、上記条件を満たすことを、オリジナル画像中の16×16画素ブロックが特定画像であるとして説明する。
符号化シーケンス制御部110は実施形態における符号化処理部6の制御を司るものである。その1つに、第1の符号長検出部108、第2の符号長検出部109、及び、画像判定部112からの信号Hと、内蔵したLUT(ルックアップテーブル)120を用いて、第1のメモリ105に格納すべき符号化データを決定する処理がある(この選択原理は後述する)。そして、その決定した符号化データを選択させるための選択信号を第1のメモリ制御部104に出力する。
また、符号化シーケンス制御部110は、各画素ブロック毎に、非可逆/可逆符号化データの何れを選択したのか、及び、非可逆符号化データ長、可逆符号化データ長を示す情報を符号化履歴記録部151に記録しておく(詳細は後述)。
更に、符号化シーケンス制御部110は、第1のメモリ105に格納することになった符号化データの符号長データを累積カウントする第1のカウンタ111を備える。第1のカウンタ111は、1ページの符号化を開始する際にゼロクリアされる。従って、このカウンタ111は、第1のメモリ105に格納された総符号化データ量を示す情報を保持することになる。
また、この符号化シーケンス制御部110は、カウンタ111の値(第1のメモリ105に格納された符号化データ量)と目標符号量Th(入力画像のサイズに依存して決定されるものとする)との比較を行う。そして、カウンタ111の値が目標符号量Thを越えた(目標符号量に達した場合としても良い)ことを検出した時に、符号化シーケンス制御部110はメモリ105内の格納済みのデータを廃棄するようメモリ制御部104に制御信号を出力する。また、このとき、符号化シーケンス制御部110は、カウンタ111をゼロクリアする。そして、画像の再入力を制御部1(図11参照)に対して要求し、原稿画像の再スキャンを実施させる。
再スキャンを行なう目的は、第1のメモリ105に格納される符号化データ量をより少なくするためである。それ故、符号化シーケンス制御部110は、第1の符号化部102に設定する量子化マトリクス、第1、第2符号長検出部及び画像判定部112からの信号に基づく判定条件、或いは、LUT120による選択基準を変更する。すなわち、符号化シーケンス制御部110は、少なくとも前回よりも発生する符号化データ量を抑制するための環境設定(符号化パラメータ)を更新する。この更新処理についての詳細は後述する。
こうして、カウンタ111の値が目標符号量Thを超えないまま、1ページの符号化が完了すると、それを2次記憶装置7にファイルとして出力する。この1ページの符号化データには、可逆、非可逆符号化データが混在した符号化データが生成されることになることに注意されたい。また、次のページの画像データが存在する(或いは次の原稿が存在する)場合には、その原稿の読み込みを行なうべく、その原稿を読取面(一般にはプラテンガラス)に搬送し、読取及び符号化を開始する。
以上実施形態における符号化処理部6の大まかな処理内容について説明した。
<環境設定の説明>
次に、実施形態における符号化シーケンス制御部110が、画素ブロック毎の非可逆/可逆符号化データのいずれを第1のメモリ105に格納するかを決定するための環境設定について説明する。なお、以下の説明では、本実施形態の処理内容の理解がしやすいようにするため、画像判定部112からの画像判定情報はないものとして説明する。画像判定部112からの画像判定情報を利用した処理の詳細は後述する。
先に説明したように実施形態では、第1の符号化部102に非可逆符号化であるJPEG、第2の符号化部103に可逆符号化であるJPEG−LSを利用した場合である。JPEGは周知の通り自然画の圧縮に適した符号化技術であるが、文字/線画等については圧縮率は高くない。一方、JPEG−LSは、文字/線画(カラーを含む)、並びに、単調な棒グラフ等の画像に好適なものであり、尚且つ、可逆符号化であるが故に画像劣化は原理的に発生しない。ただし、JPEG−LSは自然画については圧縮率は高くない。つまり、これら2つの符号化技術は互いに補う関係にあると言える。
ここで、図9に示すような、文字/線画領域T1、T2、コンピュータグラフィクスによるグラデーション(濃度がなだらかに変化する画像)領域G、自然画領域Iを含む原稿を読取る場合について考察する。
文字/線画領域T1内には、画像のエッジが急峻な文字/線画のみが存在し、文字/線画T2ではエッジ部分が多少ボケた文字/線画のみが存在するものとする。文字/線画領域T2は文字や図形のふちを滑らかに見せるためのアンチエイリアス処理をかけたものや、デジタル的な解像度変換を行った場合に相当する。文字/線画領域T2は、何度も複写を繰り返した場合の画像を擬似的に生成したものと考えると分かりやすい。
さて、非可逆符号化を行なう第1の符号化部102に対しては初期パラメータとして量子化マトリクスQ0(最高画質、最低圧縮率)を設定し、図9の原稿を読取ったとする。このとき、16×16画素ブロック単位に可逆符号化して得られた符号化データの符号長をLx、上記16×16画素ブロックの解像度変換後の8×8画素ブロックを非可逆符号化で符号化して得られた符号化データの符号長をLyとする。このLx、Lyを座標とする点P(Lx、Ly)を、1ページに含まれる画素ブロックの数だけプロットした結果を示すのが図7である。
図7における楕円で囲んだ各分布領域2001乃至2005が、上記各領域T1、T2、G、Iのプロットした点の概ねの分布領域を示している。なお、楕円外をプロットする点が存在したが、そのようなプロット点は少なく、イレギュラーな点として無視した。また、図示の破線2006はLy=Lxの関係を示す直線である。
ここで符号化データの圧縮効率の観点からすれば、第1のメモリ105に格納する符号化データは次のような条件で決定することになろう。
1.Ly<Lxの関係にあるとき、第1のメモリ105には第1の符号化部102からの非可逆符号化データを格納する。
2.Ly≧Lxの関係にあるとき、第1のメモリ105には第2の符号化部103からの可逆符号化データを格納する。
上記のようにすると、第1のメモリ105は1ページの総符号化データ量が、最小データ量とすることが可能になる。
しかしながら、境界条件Ly=Lxの場合には、コンピュータグラディエーション領域Gは、境界線2006で分断されることになり、非可逆符号化データと可逆符号化データが画素ブロック単位に混在した状態になる。すなわち、コンピュータグラディエーション領域Gには、可逆符号化データの画素ブロックと非可逆符号化データの画素ブロックが交互に発生する可能性が非常に高いことを意味する。これを復号すると、符号化方式の違いに起因して、隣接する画素ブロックの境界が不連続となるブロックノイズが発生し易くなり、画質の面で不利と考えられる。
そこで、実施形態では、図7の実線2007で示される非線形な境界条件を設定する。すなわち、コンピュータグラデーション領域Gの分布領域2003と自然画領域Iの分布領域2004との中間位置を通り、分布領域2003外を回り込むような下に凸(上に凹)の曲線を設定する。また、その曲線を文字/線画領域T2の分布領域2002と自然画領域Iの分布領域2004との間を通るようにした。
なお、図7では境界線2007の湾曲部分(非線形部分)は、コンピュータグラデーション領域G、アンチエイリアス処理を施した文字/線画領域T2の外部を通る部分とした。しかし、必ずしもコンピュータグラデーション領域Gやアンチエイリアス処理を施した文字/線画領域T2の外部を通るとは限らないし、更に多くのサンプルを用いて求めることが望まれる。いずれにしても、単純な線形境界条件2006と比べ、実施形態の境界線2007のように、比較的符号量の低い部分については、可逆符号化データが採用される確率が高くなり、上記のような問題が発生することを抑制できる。また、境界線が非線形になる箇所は両符号化の符号長の小さい領域であるので、画像全体に対する符号データ量に与える影響は少ないくすることもできる。
ここで実線2007で示される境界条件を、Ly=f(Lx)と表現すると、
1.Ly<f(Lx)の関係あるとき、第1のメモリ105には第1の符号化部102からの非可逆符号化データを格納する。
2.Ly≧f(Lx)の関係にあるとき、第1のメモリ105には第2の符号化部103からの可逆符号化データを格納する。
この結果、コンピュータグラデーション領域内は、異なる符号化種類の符号化データが混在する確率が低くなり、上記のような問題が発生することを抑制できるようになる。
なお、図7における実線2007は、原点、点A(≒コンピュータグラデーション領域の可逆符号化データ長の最大値+α)、点B(Lx<Lyを満たすアンチエイリアス処理を施した文字/線画領域T2の最大値+α)で示される区間を曲線で示した。そして、点Bより大きい領域では破線2006と実線2007とを重ねるようにした。この結果、可逆/非可逆符号化データのデータ長が共に大きい場合には、そのデータ長が短い符号化データが選択されることになり、第1のメモリ105に格納される符号化データ量の増大を抑制できる。
次に、第1のカウンタ111の値が目標符号量Thを超えた場合の対処法について以下に説明する。2回め以降のスキャンでは、当然、前回の符号化データ量よりも少ない符号化データ量にする必要がある。本願発明者等は、このためのアプローチとして2通りを考えた。以下に、それぞれのアプローチについて先ず説明する。
<第1のアプローチ>
第1のアプローチは、前回の符号化で使用されていた量子化マトリクスを仮にQi-1としたとき、今回のスキャン及び符号化ではそれより上の量子化マトリクスQiとし、且つ、境界条件を変更する。具体的には次の通りである。
図7は第1の符号化部102に設定する量子化マトリクスQ0であった。その量子化マトリクスQ0より1つレベルの高い量子化マトリクスQ1を用いた場合の、各像域のプロットした分布領域は図8のようになる。
可逆符号化データの符号長Lxは変動しないので、図7の各分布領域2001乃至2004は、図8の分布領域2001’乃至2004’のように、総じて垂直軸の下方向にシフトすることになる。また、これに伴い、図7の境界線2007の曲線部分も、図8の境界線2007’のように総じて下方向にシフトする。
ここで、第1の符号化部102で使用する量子化マトリクスをQiとし、その際の境界条件fi()と定義する。ここで、変数iは図10に示す如く、0、1、2、3…の値であり、境界条件fiで示される境界線の湾曲部分は、iが大きくなるほど、下方向にシフトする。
要するに、符号化シーケンス制御部110の処理は次のようになる。
1.Ly<fi(Lx)の関係あるとき、第1のメモリ105には第1の符号化部102からの非可逆符号化データを格納する。
2.Ly≧fi(Lx)の関係にあるとき、第1のメモリ105には第2の符号化部102からの可逆符号化データを格納する。
以上の結果、少なくとも前回の符号化で用いた量子化マトリクスがQi-1であった場合、今回の量子化マトリクスをQiとすることで、第1のメモリ105に格納される符号化データ量は前回の符号化時のそれとより少なくできるようになる。
<第2のアプローチ>
図8の境界線2006と境界線2007で挟まれる領域を明示すると図12の斜線で示した領域2010となる。
或る画素ブロックから得られた可逆符号化データ長をLx、非可逆符号化データ長をLyとしたとき、座標(Lx,Ly)が領域2010内にあれば、非可逆符号化データよりも多い可逆符号化データが第1のメモリ105に格納されることになる。
従って、量子化マトリクスQiを変更しなくても、この領域2010の面積を小さくするだけで第1のメモリ105に格納される符号化データ量を少なくなるできる。
その為には、2回めのスキャン時には、図13のように、境界線2007を左方向にシフトした境界線2007aに変更する。また、これでもって生成された符号化データ量が目標符号量Thを越えた場合には、更に左にシフトした境界線2007bを採用するようにする。
なお、図13では、境界線2007bが領域2002の内部を通過するようになっている。領域2007bはアンチエイリアス処理を施した不鮮明な文字/線画に対応するものであり、且つ、通常の文書中の文字/線画は領域2002ではなく領域2001に対応するので、符号化による画質劣化の影響は少ない。ただし、領域2003(コンピュータグラフィックスによる画像)内に境界線が入り込まないようにすることが望ましい。理由は先に説明した通りである。ただし、本発明は、境界線が必ずしも、領域2003外を通ることを必須とするものではない。なぜなら、多少は領域2003内に境界線が入り込んだとしても、線形な境界線2006と比較すれば、画質が劣化する可能性は低くなるからである。
また、上記では、境界線2007a、2007bについて、境界線2007を左シフトするという表現を用いたが、単純なシフトではなく、先の第1のアプローチと同様に、境界線2007の水平方向の倍率を変更することで実現しても構わない。
以上説明したように、量子化マトリクスを変更しなくても、境界線2007を総じて左側にシフトすることで、符号化データ量を減らすことが可能になることが理解できよう。
<符号化環境の設定原理の説明>
上記第2のアプローチでは、量子化マトリクスQ0の初期の境界線2007を、Ly≧Lxを満たしつつ、左シフトして境界線2007a,2007b…を定義していくものであった。この左シフトする対象は、量子化マトリクスQ1,Q2,…それぞれの初期の境界線についても同様である。
ここで、左シフトの回数を変数jで定義すると、結局のところ、可逆/非可逆符号化データの選択判定の境界条件は、上記変数jと使用する量子化マトリクスを特定する変数iによって特定できることになる。即ち、境界条件は、変数i,jをパラメータとする関数fi,j()と見ることができる。
従って、符号化シーケンス制御部110は、次の処理を行なえば良いことになる。
1.Ly<fi,j(Lx)の関係あるとき、第1のメモリ105には第1の符号化部102からの非可逆符号化データを格納する。
2.Ly≧fi,j(Lx)の関係にあるとき、第1のメモリ105には第2の符号化部103からの可逆符号化データを格納する。
符号化シーケンス制御部110は、画素ブロックの符号化データが生成される都度、この関数fi,j()を演算すれば良いが、それでは符号化シーケンス制御部110に係る負担は大きい。そこで、実施形態では、関数fi,j()(i,j=0,1,2,3,…)に相当する幾つもの境界条件データを、符号化シーケンス制御部110内のLUT(ルックアップテーブル)120として保持するようにした。
符号化シーケンス制御部110内における、LUT120を用いた符号化データの選択、及び、境界関数fi,j()の選択に係る構成は、例えば図2に示す構成で実現できよう。
LUT120にはアドレスとして、第1の符号長検出部108及び第2の符号長検出部109それぞれからの符号長データ、変数i、及び、変数jが供給される。
この変数i,jは、境界条件関数fi,j()を示す複数のテーブルの中の1つを選択するための信号とも見ることができる。
そして、LUT120内の、上記アドレス位置に1ビットの選択信号Sを予め格納しておく。例えば、Ly≧fi,j(Lx)という関係にあるアドレス位置には“1”、Ly<fi,j(Lx)という関係にあるアドレス位置には“0”を格納する。
そして、アドレスされた際にそのビットを符号化データ選択信号Sとして第1のメモリ制御部104に出力する。また、この符号化データ選択信号Sはセレクタ121の選択信号としても供給される。そして、セレクタ121は選択された符号長データは第1のカウンタ111に出力される。第1のカウンタ111はセレクタ121から出力されたデータ長を累積加算していけばよい。
さて、原稿のスキャン/符号化する場合には、符号化シーケンス制御部110は、第1の符号化部102に対して、変数iで示される量子化マトリクステーブルQiを設定する。また、符号化シーケンス制御部110は、境界条件fi,j()に従って、可逆/非可逆符号化データのいずれか一方を第1のメモリ105に格納する。なお、最初に原稿をスキャン/符号化する場合には、i=j=0である。
この符号化処理中に、第1のカウンタ111が保持した符号量情報(第1のメモリ105に格納された総符号化データ量)が目標符号量Thを越えたとする。この場合、符号化シーケンス制御部110は、現在の境界条件に隣接する境界条件fi+1,j()、fi,j+1()のいずれにするかを決定し、再スキャン/符号化を実行する。換言すれば、符号化シーケンス制御部110は、変数i,jの値を決定しなければなならい。そこで、以下では、この変数i,jの決定の原理について説明する。
実施形態における符号化シーケンス制御部110は、1つの画素ブロックの符号化が完了するごとに、符号化処理のログ情報を符号化履歴記録部151(図1参照)に格納する。
符号化履歴記録部151が記憶データ構造は、例えば図17に示す通りである。図示では、変数i=a、j=bの場合のログ情報を示している。
第1のフィールドは、画素ブロックの番号であり、最大画素ブロックの番号Nmaxは読取る原稿のサイズに依存する。第2フィールドは可逆符号化データ長Lx、第3フィールドは非可逆符号化データ長Ly、第4フィールドは何れの符号化データを第1のメモリ105に格納させたかを示す選択信号S(図2参照)を格納する。なお、第5フィールドは、画像判定部112からの画像判定信号Hであるが、ここでは説明しない。
また、可逆符号化データが選択された場合、すなわち、選択信号Sが“1”の場合の可逆符号化データ長Lxの累積加算値MLSをエリア151aに格納する。同様に、選択信号Sが“0”の場合の非可逆符号化データ長Lyの累積加算値MJPをエリア151bに格納する。つまり、エリア151aが保持する値MLSとエリア151bが保持する値MJPの合算結果は、第1のカウンタ111が保持する値に等しい。
また、図17では、ちょうどk番目の画素ブロックの符号化処理が完了した場合に、第1のカウンタ111が保持する値が目標符号量Thを越えた場合を示している。
この場合、実施形態における符号化シーケンス制御部110は、以下のような処理を実行する。
[MLS<MJPの場合]
これは、非可逆符号化データのデータ量が、可逆符号化データ量よりも多かった場合を示している。換言すれば、全符号化データ中、非可逆符号化データ量が支配的な場合である。符号化シーケンス制御部110は、次のように処理する。
1.第1のメモリ105内のデータを破棄する指令を第1のメモリ制御部104に出力し、第1のカウンタ111をゼロクリアする。
2.第1の符号化部102に対して、前回の量子化マトリクスQaより1段階大きな量子化マトリクスQa+1を設定する。
3.i=a+1、j=bをLUT120に設定し、使用する境界条件をfa+1,j()に変更する。
4.原稿の再スキャン/符号化を開始する。
[MLS≧MJPの場合]
これは、可逆符号化データのデータ量が、非可逆符号化データ量よりも多かった場合を示している。換言すれば、全符号化データ中、可逆符号化データ量が支配的な場合である。符号化シーケンス制御部110は、次のように処理する。
1.第1のメモリ105内のデータを破棄する指令を第1のメモリ制御部104に出力し、第1のカウンタ111をゼロクリアする。
2.第1の符号化部102に対しては、前回の量子化マトリクスQaのままに維持する。
3.i=a、j=b+1として、LUT120に設定し、使用する境界条件をfa,b+1()を設定する。
4.原稿の再スキャン/符号化を開始する。
以上の結果、本実施形態によると、1ページの画像を符号化処理中に得られた符号化データが目標符号量Thを越えた場合、その際の可逆/非可逆符号化データ量に応じて、変数i,jを決定する。従って、符号化対象の画像データに応じた最適な符号化環境を設定可能になる。
[画像判定信号Hの活用の説明]
以上の説明は、本実施形態の処理を理解しやすくするため、画像判定部112からの画像判定信号Hについて言及していない。以下、この画像判定部112からの画像判定信号Hを用いた場合を説明する。
先に説明したように文字/線画の領域では、第2の符号化部103で生成される符号化データが選択される確率が高く、自然画領域では第1の符号化部102からの符号化データが選択される確率が高くなる。
しかしながら、これはあくまで確率であって、必ずしもそのようになるとは限らない点に注意したい。
従って、文字のみから構成される通常の1ページの画像を符号化して、印刷を行なったとする。この場合、1つの文字の上半分のエッジは鮮明であり、下半分はそうではないことが起こりえる。これでは、その印刷結果を見る者にとっては違和感を抱くことにもなろう。1つの文字に着目した場合、そのエッジが鮮明か、多少は不鮮明になるにしても、その文字全体のエッジが同じように印刷されることが望ましいし、ページ全体の文字が同じようなエッジで印刷されることの方が重要である。
画像判定部112は、先に示した条件式(1)を満たすか否かを示す画像判定信号Hを出力する。
この条件式(1)の意味は、16×16画素ブロックを解像度変換前と後での解像度変換誤差が大きく、且つ、16×16画素に含まれる色数が“2”であると見なして良いか否かを示している。つまり、少なくとも文字画像であるか否かを示す判定であると言える。
そこで、本実施形態では、画像判定部112からの画像判定信号Hが“1”の場合、強制的に、可逆/非可逆符号化データのいずれか一方を選択するための判断基準に加えるものとした。この選択する対象は、1ページの符号化中は固定である。
本実施形態では、画像判定信号が“1”である場合、初期状態では、無条件に可逆符号化データを選択するようにする。また、その後で、後述する条件を満たす場合、画像判定信号が“1”である場合には、今度は逆に非可逆符号化データを無条件に選択するようにする。
従って、初期状態であるか否かを判断するための変数FLAGを用意し、1ページの画像を最初に符号化するとき、FLAG=0と設定する。
つまり、FLAG=0であり、尚且つ、画像判定信号H=“1”の場合には、第2の符号化部103からの可逆符号化データを第1のメモリ105に格納するよう選択信号Sを発生する。
そして、FLAG=1であり、尚且つ、画像判定信号H=“1”の場合には、第1の符号化部102からの非可逆符号化データを第1のメモリ105に格納するよう選択信号Sを発生する。
本実施形態の符号化シーケンス制御部110は、次のように符号化処理を制御する。なお、これまでの説明の通り、16×16の画素ブロックの可逆符号化データのデータ長をLx、その16×16の画素ブロックを解像度変換した後の8×8の画素ブロックの非可逆符号化データのデータ長をLyとして説明することとする。
[符号化対象の画像データを最初に符号化する場合]
符号化シーケンス制御部110は、符号化パラメータi,j、及びFLAGを共に“0”を設定する。従って、第1の符号化部102に対して、初期値として量子化マトリクスQ0を設定し、入力部101からの画像データを第1の符号化部102、第2の符号化部103で符号化を開始させる。
符号化シーケンス制御部110は、第1のメモリ105に格納すべき符号化データを以下の条件にしたがって決定する。
条件A.画像判定信号Hが“1”の場合:
無条件に、第2の符号化部103で生成される可逆符号化データを第1のメモリ105に格納させる。
条件B.画像判定信号Hが“0”の場合:
・Ly<f0,0(Lx)の関係にあるとき、第1の符号化部102で生成された非可逆符号化データを第1のメモリ105に格納させる。
・Ly≧f0,0(Lx)の関係にあるとき、第2の符号化部103で生成された可逆符号化データを第1のメモリ105に格納させる。
ここで、注意する点は、最初のスキャンであるので、上記条件A,BのいずれもFLAG=0であることを前提にしている。
[2回目以降の符号化の場合]
これは、前回、或いは、最初の符号化処理中に、第1のカウンタ111が保持する値は目標符号量を越えた場合である。
ここでは、説明を簡単なものとするため、最初の符号化中、図17に示すように第k番目の画素ブロックを符号化した際に、第1のカウンタ111が保持する値が、目標符号量Thを越えた場合について説明する。つまり、図17におけるa,bはa=b=0であり、FLAG=0であるものとして説明する。
k番目の画素ブロックの符号化が完了した場合の第1のメモリ105に格納された符号化データ量(第1のカウンタ111が保持する値)をM0とする。このとき、M0と図17の符号化履歴記録部151に格納されているMLS、MJPとの関係は、次の通りである。
M0=MLS+MJP
また、可逆符号化データ量MLSは、2種類の可逆符号化データ量で分けられる。1つは、上記条件A(画像判定信号Hが“1”)に従って強制的に可逆符号化データが選択された場合の符号化データ量であり、これをMLS(H1)と定義する。もう1つは上記条件B(画像判定信号Hが“0”)の「Ly≧f0,0(Lx)」が満たされた場合の符号量であり、これをMLS(H0)と定義する。つまり、
MLS=MLS(H1)+MLS(H0)
である。
画像判定信号Hは“1”か“0”のいずれかである。従って、図17の場合、MLSH1は、変数b=1、2、…kの合算関数Σで表わすと次の通りに記述できる。
MLSH1=ΣLx(b)×H(b)
また、MLSH1は、単純に、次のように算出できる。
MLSH0=MLS−MLSH1
本実施形態では、MJP、MLS(H1)、MLS(H0)の中の最大値を示すものを探し出し、それぞれに応じて、次回のスキャン/符号化に利用する符号化パラメータを決定する。なお、理論上、MJP=MLS(H1)=MLS(H0)となることもあるが、このような場合、優先順位としてMJP<MLS(H0)<MLS(H1)と見なして処理を行なうものとする。
また、符号化履歴記録部151には、MJP、MLS(H1)、MLS(H0)を格納する領域を設けても良い。この場合、1画素ブロックの符号化が完了する毎に、MJP、MLS(H1)、MLS(H0)を更新すれば良いので、上記算出は不要にできる。
なお、ここで注意したい点は、上記はFLAG=0であることを前提にしている点である。FLAG=1である場合であって、画像判定信号Hが“1”のときには強制的に、非可逆符号化データを選択するので、MLS(H1)は“0”となり、必ず最小値となる。
<MLS(H1)が最大値である場合>
これは第1のメモリ105に格納されている符号化データの内、FLAG=0、且つ、画像判定信号Hが“1”となった場合の可逆符号化データが一番多いことを示している。
実施形態では、現在の符号化パラメータi,jを維持したまま、再度スキャン/符号化を行なう。ただし、このままでは、同じ結果になってしまうので、次回のスキャン/符号化時には、画像判定信号Hが“1”の場合には、第1の符号化部102からの非可逆符号化データを選択するように変更する。すなわち、FLAG=1に更新する。まとめると、符号化シーケンス制御部110の処理は次の通りである。
1.第1のメモリ105内のデータを破棄する指令を第1のメモリ制御部104に出力し、第1のカウンタ111をゼロクリアする。
2.符号化パラメータi,jは変更しない。従って、第1の符号化部102に対しても、前回のスキャン/符号化時の量子化マトリクスQaのまま維持し、使用する境界条件をfa,b()のままにする。
3.変数FLAGを“1”に設定する。
4.画像の再スキャン/符号化を開始する。
従って、画像の再スキャン/符号化では、画像判定信号Hが“1”となった場合、第1のメモリ105には無条件に非可逆データを格納するための選択信号Sを出力することになる。
なお、これ以降、注目ページに対する最終的な符号化データが得られるまで、FLAGの値は“1”のままに維持する。
従って、ここで説明した<MLS(H1)が最大値である場合>の処理は、注目ページの符号化処理中は、最大でも1回しか実行されない。
<MLS(H0)が最大値である場合>
これは第1のメモリ105に格納されている符号化データの内、『Ly≧fa,b(Lx)』の関係にあると判断されて格納された可逆符号化データ量が一番多い場合を意味する。
この場合、符号化シーケンス制御部110は、これまで説明した処理に従って処理を行なう。再度説明すれば次の通りである。
1.第1のメモリ105内のデータを破棄する指令を第1のメモリ制御部104に出力し、第1のカウンタ111をゼロクリアする。
2.第1の符号化部102に対しては、前回の量子化マトリクスQaのままに維持する。
3.符号化パラメータi,jを、i=a、j=b+1として、LUT120に設定し、使用する境界条件をfa,b+1()を設定する。
4.原稿の再スキャン/符号化を開始する。
この結果、画像の再スキャン/符号化処理が開始されるが、その符号化処理中に画像判定信号Hが“1”になった場合に選択する符号化データは、変数FLAGに依存して決定する。
[MJPが最大になる場合]
これは第1のメモリ105に格納されている符号化データの内、『Ly<fa,b(Lx)』の関係にあると判断されて格納された非可逆符号化データ量が一番多い場合を意味する。
この場合、符号化シーケンス制御部110は、これまで説明した処理に従って処理を行なう。再度説明すれば次の通りである。
1.第1のメモリ105内のデータを破棄する指令を第1のメモリ制御部104に出力し、第1のカウンタ111をゼロクリアする。
2.第1の符号化部102に対して、前回の量子化マトリクスQaより1段階大きな量子化マトリクスQa+1を設定する。
3.符号化パラメータi,jをi=a+1、j=bとして、LUT120に設定し、使用する境界条件をfa+1,j()に変更する。
4.原稿の再スキャン/符号化を開始する。
この結果、画像の再スキャン/符号化処理が開始されるが、その符号化処理中に画像判定信号Hが“1”になった場合に選択する符号化データは、変数FLAGに依存して決定する。また、FLAG=1となった場合、MJPには、画像判定信号Hが“1”になって選択された非可逆符号化データのデータ量と、画像判定信号Hが“0”になって、Ly<fa,b(Lx)となって選択された非可逆符号化データのデータ量が含まれることになる。

上記を実現するため、符号化シーケンス制御部110は図3乃至図5のフローチャートに従って処理を行えば良い。
先ず、ステップS1で変数i、j、FLAGに初期値として0をセットする。次いで、ステップS2では、第1のカウンタ111に相当する変数Cnをゼロクリアする。
この後、ステップS3で第1の符号化部102に量子化マトリクステーブルQiをセットする。最初の符号化の場合、i=0であるので、第1の符号化部102に量子化マトリクステーブルQ0をセットすることになる。また、このとき、符号化履歴記録部151をクリアする処理も行なう。
次いで、ステップS4で1画素ブロックのデータ(16×16画素で構成される部分画像データ)を入力する。
そして、ステップS5にて第2の符号化部102で可逆符号化を行い、ステップS6にてその際に得られた符号化データ長Lxを求める。また、この符号化処理中に、符号化対象となる注目画素の近傍画素群内の色数が“2”となっている個数C(以下、2色数Cという)をカウントする(ステップS7)。
また、この可逆符号化と並行して、以下のステップS8乃至S11の処理を行なう。
ステップS8では、16×16画素ブロックを8×8画素ブロックへ解像度変換を行なう。そして、ステップS9では解像度変換誤差Dを算出する。次いで、ステップS10では、非可逆符号化を行ない、ステップS11では、その際に得られた符号化データ長Lyを求める。
なお、図示ではステップS5乃至S7とステップS8乃至11の処理は、並行して行う例を示しているが、コンピュータプログラムで実現する場合であって、且つ、マルチタスクOSが稼働するのであれば同様に処理できる。また、シングルタスクOSで実現する場合には、ステップS5、6、7、8、9、10、11の順に処理すれば良いであろう。
さて、着目画素ブロックに対する可逆符号化、及び、非可逆符号化処理が終了すると、処理はステップS12(図4)に進む。
ステップS12では、2色数Cと解像度変換誤差Dに基づき、画像判定信号Hを算出する。すなわち、
D>T1 且つ C>T2の場合、H=1
これ以外では、H=0
とする。
ステップS13では、画像判定信号Hが“1”であるか否かを判断する。H=0であると判断した場合にはステップS14に処理を進める。
ステップS14では、『Ly≧fi,j(Lx)』を満たすか否かを判定する。この関係を満たす場合には、ステップS15にて第1のメモリ105には可逆符号化データを格納させる。そして、ステップS16にて、カウンタCnに符号長Lxを加算する。
また、ステップS14にて『Ly<fi,j(Lx)』であると判定した場合には、ステップS17にて、第1のメモリ105には非可逆符号化データを格納させる。そして、ステップS18にて、カウンタCnに符号長Lyを加算する。
一方、ステップS13にて、画像判定信号Hが“0”であると判断した場合には、ステップS19に進んで、FLAGが“0”であるか否かを判断する。
FLAGが“0”であると判断した場合には、ステップS20にて第1のメモリ105には可逆符号化データを格納させる。そして、ステップS21にて、カウンタCnに符号長Lxを加算する。
また、FLAGが“1”であると判断した場合には、ステップS22にて第1のメモリ105には非可逆符号化データを格納させる。そして、ステップS23にて、カウンタCnに符号長Lyを加算する。
以上のようにして、第1のメモリ105への符号化データの格納が終わると、処理はステップS24に進んで、注目画素ブロックの符号化履歴情報(実施形態では、Lx、Ly、及び選択信号S、画像判定信号H)を符号化履歴記録部121に格納する。
そして、ステップS15にて、カウンタCnが目標符号量Thである閾値を越えたか否かを判断する。
Cn≦Thであると判断した場合には、ステップS26に進んで、1ページの最終画素ブロックについての処理が完了したか否かを判断する。そして、このステップS26の判定がNoの場合には、ステップS4以降の処理を繰り返す。
また、ステップS25でCn>Thである、すなわち、1ページの符号化処理中に、生成された符号化データ量が目標符号量を越えたと判断した場合には、ステップS27に進み、符号化パラメータi,j、FLAGの更新処理を行なう(詳細後述)。そして、ステップS2に戻って、1ページの先頭画素ブロックから再入力及び再符号化を開始する。
こうして、Cn≦Thのまま、1ページ分の画像の符号化が完了した場合には、ステップS26の判定がYesとなる。この場合には、ステップS28に進み、第1のメモリ105に格納された符号化データを2次記憶装置7にファイルとして書き込み、本処理を終了する。
ここで、上記のステップS27の処理を図5のフローチャートに従って説明する。
先ず、ステップS31にて、符号化履歴記録部151を参照して、MJP、MLS(H0)、MLS(H1)を算出する。
次いで、これらMJP、MLS(H0)、MLS(H1)の中の最大値となる値MXを求める。
MX=max(MJP、MLS(H0)、MLS(H1))
この後、ステップS33で、MLS(H1)とMxが等しいか否か、すなわち、MJP、MLS(H0)、MLS(H1)の中で最大となるのがMLS(H1)であるか否かを判断する。MLS(H1)が最大値であると判断した場合には、ステップS34に進み、符号化パラメータの1つであるFLAGを“1”に設定する。先に説明したように、一旦、FLAGを“1”に設定すると、注目ページの符号化中は、このステップS33の判断は必ずNoとなる点に注意されたい。
また、ステップS33の判断がNoであった場合には、処理はステップS35に進み、MLS(H1)とMxが等しいか否か、すなわち、MJP、MLS(H0)、MLS(H1)の中で最大となるのがMLS(H0)であるか否かを判断する。MLS(H0)が最大値であると判断した場合には、ステップS37に進み、境界線2007を左シフトすべく、変数jを“1”だけ増加させる。
また、ステップS35の判断がNoの場合、つまり、MJP、MLS(H0)、MLS(H1)の中で最大となるのがMJPであると判断した場合には、ステップS36に進んで、量子化マトリクスQiをQi+1に更新すべく、変数iを“1”だけ増加させる。
以上説明したように本実施形態によれば、先ず、16×16画素ブロックについて可逆符号化し、その一方で、その16×16画素ブロックを解像度変換して8×8画素ブロックを生成して非可逆符号化を行なう。そして、その際に符号量を比較することで、いずれか一方を選択する。この結果、格別は像域判定回路を設けることなく、自然画領域中の画像については非可逆符号化データが選択され易く、文字線画については可逆符号化データが選択され易くすることが可能になり、且つ、生成される符号化データ量を少なくすることが可能になる。
更に、実施形態によれば、目標符号量Thを超えた場合には、符号化パラメータi,j,FLAGの少なくとも1つを変更し、画像データの再入力・再符号化を行うことで、目標符号量量Th以下の符号化データを生成することも成功する。
また、画素ブロック毎の解像度変換する前と後との間の差分が大きく、且つ、その画素ブロックに含まれる色数がほぼ2色である場合には、1ページを通じて、可逆/もしくは非可逆符号化のいずれか一方のみが選択される。従って、文字/線画等の画像のエッジは、ほぼ同じ状態を維持でき、違和感のない出力結果を得ることが可能になる。
<第2の実施形態>
上記実施形態は、第1のメモリ105に格納される符号化データ量(第1のカウンタ111の値)が、目標符号量Thを越えた場合、その符号化データに占める可逆符号化データ量MLS(H0),MLS(H1)と非可逆符号化データ量MJPとの比較する。そして、この比較結果に従って、次回のスキャン時の符号化パラメータi,j、FLAGを決定した。本第2の実施形態では、この内の符号化パラメータi,jを更に精度良く決定する例を説明する。
符号化パラメータFLAGについては第1の実施形態と同様に決定されるものとする。また、説明を単純化するため、FLAG=1となった場合について説明する。
つまり、第1のメモリ105に格納される非可逆符号化データは、FLAG=1となった場合、或いは、FLAG=0で、且つ、Ly<fi,j(Lx)となる場合である。このとき、MLS(H1)は常に“0”であり、MLS=MLS(H1)の関係を満たす。従って、以下では、MJPとMLSについて言及すれば良いのは明らかである。
先ず、説明に先立ち、fi,j()をfi+1,j()に変更した場合、画素ブロックに対する非可逆符号化データ長の統計的な減少率R((i,j),(i+1,j))が求められているものとする。ここで、fi,j()を用いた場合の、画素ブロックの平均的な非可逆符号化データ長をC(fi,j())と定義した場合、減少率R((i,j),(i+1,j))は次の通りである。
R((i,j),(i+1,j))=C(fi+1,j())/C(fi,j())
また、同様に、fi,j()をfi,j+1()に変更した場合の非可逆符号化データ長の統計的な減少率R((i,j),(i,j+1))も求められているものとする。そして、fi,j()をfi+1,j+1()に変更した場合の非可逆符号化データ長の統計的な減少率R((i,j),(i+1,j+1))も予め求められているものとする。
境界条件fi,j()で符号化している最中に、第1のメモリ105に格納されている符号化データ量が目標符号量Thを越えたとする。この場合、本第2の実施形態の符号化シーケンス制御部110は、fi+1,j()、fi,j+1()、fi+1,j+1()の中から1つを選択する。すなわち、再符号化のパラメータi,jを決定する。
装置構成は図11と同じであり、符号化処理部6も図1と同じとする。異なる点は、符号化シーケンス制御部110の処理内容と、符号化履歴記録部121が格納するデータ構造である。
本第2の実施形態における符号化履歴記録部121のデータ構造の例を図18に示す。図17との相異点は、図18では第6〜第11フィールドが追加された点である。第1乃至第5フィールドは図17と同じである。
第2の実施形態の符号化シーケンス制御部110は、1つの画素ブロックの符号化データを第1のメモリ105に格納するた際に、以下の処理を行なう。
1.注目画素ブロックの非可逆符号化データLyに減少率R((i,j),(i+1,j))、R((i,j),(i,j+1))、及び、R((i,j),(i,j+1))を乗算して得られた値Ly',Ly'',Ly'''を、予測符号化データ長として第6、第8、第10フィールドに格納する。
2.予測される選択信号S',S'',S'''を第7、第9、第11フィールドに格納する。
これらの処理1、2は、図4におけるステップS24で行なえば良い。
ここで、選択信号S',S'',S'''がどのようになるのかは、図2の構成を利用して、擬似的に選択信号Sを発生させれば良い。なお、可逆符号化データ量Lxは、スキャン回数に依存せず、変化することはない。
本第2の実施形態における、符号化シーケンス制御部110が、符号化履歴記録部121に格納する各データは以下のようにして求める。
Ly' = Ly×R((i,j),(i+1,j))
Ly' < Lxの場合、S’=0
Ly' ≧ Lxの場合、S’=1
Ly'' = Ly×R((i,j),(i,j+1))
Ly'' <Lxの場合、S'' =0
Ly'' ≧Lxの場合、S'' =1
Ly''' = Ly×R((i,j),(i+1,j+1))
Ly'''<Lxの場合、S'''=0
Ly'''≧Lxの場合、S'''=1
さて、図18の場合、k番目の画素ブロックを符号化した際に、第1のカウンタ111の値が目標符号量を越えたことを示している。
この1乃至k番目の画素ブロックを符号化した際の可逆符号化データ量はMLS、非可逆符号化データ量はMJPで与えられるから、第1のカウンタ111の値は、次のようになる。
第1のカウンタ111の値=MLS+MJP (2)
1ページの符号化が途中で中断するが、k番目以前と同じ推移でk+1番目以降の画像が入力されると仮定すると、1ページの全画素ブロックの符号化が完了した場合の1ページの予測総符号化データ量Mtotalは、次のように求められるであろう。
Mtotal=(MLS+MJP)×Nmax/k
従って、境界条件fi+1,j()での1ページの予測符号化データ量をMtotal'とした場合、次のようにして求めることができる。
Mtotal'=(MLS'+MJP')×Nmax/k (3)
ここで、MLS'は予測選択信号S’=1の可逆符号化データ長Lx()の合計値であり、MJP’は予測選択信号S’=0の非可逆符号化データ長ータLy'()の合計値である。
同様に、境界条件fi,j+1()の場合の予測符号化データ量Mtotal''、fi+1,j+1()の場合の予測符号化データ量Mtotal'''も求めることができるのは明らかである。
本第2の実施形態では、このようにして求めたMtotal',Mtotal'',Mtotal'''の中で、目標符号量Thとの差分の絶対値が最も小さいものを選択し、その際の変数i,jを次のスキャン/符号化の符号化パラメータとして決定する。
なお、上記でMLS'、MJP'の算出は、既に図18のようなテーブルが構築されている場合には、実質的に瞬時に計算できるものである。ただし、計算速度を高めるには、予測値Ly’や予測選択信号S’を求めた際に、MLS'或いはMJP'も更新することである。
また、本第2の実施形態では、符号化パラメータi=a,j=bを設定して得られた実符号化データ量が目標符号量Thを越えた場合、「i=a+1、j=b」、「i=a,j=b+1」、「i=a+1,j=b+1」の3つの中から、再スキャン/符号化の際の符号化パラメータを決定した。しかし、第1の実施形態と同様に、「i=a+1、j=b」、「i=a,j=b+1」の2つの中から選択しても構わない。
ここで、本第2の実施形態における符号化シーケンス制御部110は、図5のステップS33がNoと判断された以降のステップS35乃至S37に代わって、図19の示すフローチャートに従って符号化パラメータを決定すればよい。
ステップS41乃至43では、上記のようにしてMtotal',Mtotal'',Mtotal'''を算出する。次いで、ステップS44では、Mtotal',Mtotal'',Mtotal'''の中で目標符号量Thとの差の絶対値が最小になるのはどれかを判定する。
目標符号量Thとの差の絶対値が最小となるのが、Mtotal'であれば、変数iのみを“1”だけインクリメントし、変数jは変更しない(ステップS45)。また、目標符号量Thとの差の絶対値が最小となるのが、Mtotal''であれば、変数jのみを“1”だけインクリメントし、変数iは変更しない(ステップS46)。そして、目標符号量Thとの差の絶対値が最小となるのが、Mtotal'''であれば、変数i、jの両方を“1”だけインクリメントする。
以上説明したように本第2の実施形態によれば、第1の実施形態と比較して、より精度良く符号化パラメータi,jを決定することが可能になり、結果的に、第1の実施形態と比較してスキャン回数を減らすことも可能になる。
なお、2回目の再スキャン/符号化が開始されると、符号化履歴記録部121には3回目の再スキャン/符号化のための予測情報が格納されることになる点を付言しておく。
<第3の実施形態>
上記第2の実施形態では、1ページの予測符号化データ量Mtotal',Mtotal'',Mtotal'''を求め、その中の目標符号量に最も近い符号化パラメータで再符号化を行なうものであった。本第3の実施形態では、符号化対象の画像に依存して符号化パラメータを決定する例を説明する。装置構成は、第1の実施形態と同じである。
また、符号化パラメータFLAGについては第1の実施形態と同様に決定されるものとする。また、説明を単純化するため、ここでもFLAG=1となった場合について説明する。従って、第2の実施形態で説明した通り、MLS=MLS(H1)の関係が成立するので、以下では、MJPとMLSについて説明する。
また、符号化履歴記録部121が格納するデータ構造は第2の実施形態と同じであるが、符号化パラメータi,jの全てについて、非可逆符号化データ量Lyの予測符号量と予測選択信号を求めているものとする。
LUT120に格納されている変数i(量子化マトリクスQiを決定する変数でもある)、jで特定される各境界条件fi,j()の境界線を図14乃至図16に示す。図示は2次元配列された9個の境界線の例であるが、勿論、この数に制限はない。基本的に、A点(図7参照)の垂直方向の座標位置は、変数iが増加するにつれて下方向にシフトし(図14示の直線2501参照)、変数jが増加するにつれて左方向にシフトしていく(図7の直線2502参照)。図14乃至図16の違いは、P0乃至P8で示した順番であり、それ以外は同じである。なお、これら図14乃至16における優先順位情報は、符号化シーケンス制御部110内に格納されているものとする。
第2の実施形態で説明したように、i=a、j=bの符号化パラメータで符号化中に目標符号量Thを越えた際の可逆符号化データ量はMLS、非可逆符号化データ量はMJPで与えられる。
本第3の実施形態におけるMLS及びMJPと、図14乃至図16を説明すると、以下の通りである。なお、以下の説明で係数αは1未満の正の値であり、例えばα=0.6である。また、説明を簡単なものとするため、現在の符号化パラメータはi=0、j=0の場合として説明する。
[MLS<MJP×αの場合]
これは、非可逆符号化データ量MJPが可逆符号化データ量MLSよりも十分に多い場合を示している。すなわち、符号化対象の画像データ中の自然画が占める面積が大きく、文字/線画が占める面積は小さいことを意味する。従って、再スキャン/符号化処理する場合には、変数iを増加させることを優先することが望ましく、図14の優先順位P0、P1、P2…に従って再スキャン/符号化に用いる符号化パラメータi,jを決定する。
[MLS×α≧MJPの場合]
これは、可逆符号化データ量MLSが可逆符号化データ量MJPよりも十分に多い場合を示している。すなわち、符号化対象の画像データ中の文字/線画が占める面積が大きく、自然画が占める面積は小さいことを意味する。通常の文章を記述した原稿の場合と考えると分かりやすい。従って、再スキャン/符号化処理する場合には、変数jを増加させることを優先することが望ましく、図15の優先順位P0、P1、P2…に従って再スキャン/符号化に用いる符号化パラメータi,jを決定する。
[MLS×α<MJP≦MLS/αの場合]
これは、可逆符号化データ量MLSと可逆符号化データ量MJPとがほぼ同じ場合を示している。すなわち、符号化対象の画像データ中には、文字/線画と自然画が混在しており、それぞれの占める割合がほぼ同じであることを意味する。従って、再スキャン/符号化処理する場合には、変数i,jの両方をほぼ同じ重みづけで増加させることが望ましく、図16の優先順位P0、P1、P2…に従って再スキャン/符号化に用いる符号化パラメータi,jを決定する。
ここで、符号化パラメータi=0、j=0で符号化処理中に、得られた符号化データ量(第1のカウンタ111の値)が目標符号量Thを越え、その際のMLSとMJPとの関係が「MLS<MJP×α」となった場合の処理を説明する。
この場合、図14の優先順位に従って、1ページの予測符号量を求める。予測符号量の算出は、先の第2の実施形態で示した式(3)で求めることができる。
本第3の実施形態では、符号化パラメータi,jの代わりに優先順位Pz(z=0、1、2、…)で示される。そこで、目標符号量Thを越えた場合の、優先順位Pzで決定される可逆符号化データ量をMLSz、非可逆符号化データ量MJPzとする。このように定義すると、優先順位Pzで示される符号化パラメータで1ページを符号化したと仮定した場合の予測総符号化データ量Mpzは次の式(4)で与えられる。
Mpz=(MLSz+MJPz)×Nmax/k (4)
先に説明したように、上記予測符号化データ量Mpzはあくまで予測値であり、実際にその符号化パラメータでスキャンし符号化した場合の符号化データ量と一致するとは限らない。そこで、許容値β(正の値)を加え、上記式(4)を以下の式(5)に変更する。
Mpz≦(MLSz+MJPz)×Nmax/k+β (5)
本第3の実施形態では、図14の優先順位の順にzに1、2、…を順次与え、最初に式(5)を満たす変数zを求め、その変数zで示される符号化パラメータに従って再スキャン/符号化を実行するようにした。例えば、z=4として決定した場合には、符号化パラメータi=1、j=1として、再スキャン/再符号化を行なう。この結果、再度符号化データ量が目標符号量Thを越えてしまった場合には、優先順位P5以降について符号化パラメータを決定していく。ここで注意したい点は、最初に目標符号量Thを越え、図14乃至図16の中の優先順位を決定した以降では、優先順位を変更しない点である。すなわち、1つのページの画像を符号化している最中に、図14乃至図16の優先順位をその都度選択することは行なわない。
以上であるが、本第3の実施形態における符号化シーケンス制御部110の処理をまとめると次の通りである。
先ず、図4のステップS24では、符号化パラメータi,jの取り得る全ての組み合わせに対して、非可逆符号化データの予測符号量と予測選択信号を格納するものとする。従って、本第3の実施形態では、第2の実施形態と同様に、図5のステップS33でNoと判断された以降の処理が変更になるだけである。
本第3の実施形態では、図5のステップS33でNoと判断した場合に後続する処理尾を、図20のフローチャートに従って処理する。
先ず、ステップS51では、初めてこの処理を実行するのか否かを判断する。この判断は、符号化パラメータi,j、FLAGが共に“0”であるか否かで判断すれば良い。
ステップS51で、「初めてこの処理を実行する」と判断した場合には、ステップS52に進んで、現在の符号化データの可逆符号化データ量MLSと非可逆符号化データ量MJPが、次のいずれであるかを判断し、優先順位を決定する。
・MLS<MJP×αの場合、非可逆符号化の符号量を優先して減らす優先順位に決定する。実施形態では、図14の優先順位に決定する。
・MLS×α≧MJPの場合の場合、可逆符号化の符号量を優先して減らす優先順位に決定する。実施形態では、図15の優先順位に決定する。
・MLS×α<MJP≦MLS/αの場合、可逆及び非可逆符号化の双方の符号量を減らす優先順位に決定する。実施形態では、図16の優先順位に決定する。
そして、ステップS53では、優先順位の番号を示す変数zに初期値“0”を代入する。
次いで、ステップS54に進んで、変数zを“1”だけ増加させる。従って、ステップS52、53の処理を行なった場合、ステップS54ではz=1となる。また、次回以降に目標符号量Thを越えた場合、ステップS52、53の処理は行われないので、前回のスキャン/符号化時のzの値が、更に“1”だけ増加することになる。
ステップS55では、符号化履歴記録部121のデータを参照して、変数zで示される1ページの予測符号化データ量MPzを算出する。そして、ステップS56で、条件「MPz≦Th+β」を満たすか否かを判断する。この条件を満たさないと判断した場合にはステップS54に進んで、変数zを更新し、同様の処理を繰り返す。
こうして、条件「MPz≦Th+β」が満たされると判断した場合、処理はステップS57に進み、その時点での変数zで示される変数i,jを、再スキャン/符号化時の符号化パラメータとして決定し、本処理を終える。
以上説明したように本第3の実施形態をまとめると次のようになる。
1.符号化パラメータi=0,j=0、FLAG=1で符号化していてる最中に、得られた符号化データ量(第1のカウンタ111の値)が目標符号量Thを越えた場合、その際の可逆符号化データ量MLSと非可逆符号化データ量MJPとを比較する。これにより、入力される画像の性質を判定できる。
2.判定した入力画像の性質に応じて、符号化パラメータi,jを求めるための優先順位を決定する。
3.決定した優先順位に従って、目標符号量Thに近似する予測符号化データ量を求め、その際の符号化パラメータi,jで実際に再スキャン/符号化を開始することにより、効率良く目標符号量Thに近い符号化データを得ることができる。
なお、本第3の実施形態では、符号化パラメータを決定するための優先順位のパターンとして、図14乃至図16の3つのパターンをしめしたが、「MLS<MJP」についてのみ判断することで、図14、図15の2つのパターンとしても良い。また、条件を更に細かく分け、4つ以上であっても構わない。
以上説明したように、本第3の実施形態によれば、第1、第2の実施形態での作用効果に加えて、目標符号量Th以下に納めるためのパラメータを、符号化対象の画像の性質に応じながら、効率良く決定できることになる。
なお、符号化パラメータi=a、j=bの次のスキャン/符号化を行なう符号化パラメータi,jを、「i≧a、j≧b」という条件を更に加えるようにしても構わない。
<第4の実施形態>
第4の実施形態を説明する。本第4の実施形態では、上記第3の実施形態を更に発展させるものである。以下にその詳細を説明する。
上記第3の実施形態では、式(5)、すなわち、
Mpz≦(MLSz+MJPz)×Nmax/k+β
の係数βは正の値であるものとした。
この式からも容易にわかるように、係数βの値が大きな値であればあるほど、この条件が満足する確率は高くなる。例えば、図14に示す優先順位に決定したとする。もしβの値が十分に大きければ、優先順位P1で直ちに上記条件が満足することになり、符号化パラメータi=1、j=0で再スキャン/符号化を開始することになろう。
ここで、実際の画像データの符号化処理では、優先順位P4の符号化パラメータを使用して目標符号量Th以下になるとすると、結局のところ、P0、P1、P2、P3、P4、の計5回のスキャン/符号化を行なうことになる。すなわち、係数βを大きな値に設定すると、スキャン/符号化処理回数は増える可能性が高いものの、目標符号量Th以下という条件で、最高画質を生成するための符号化データを生成することが可能になる。
一方、係数βの値が小さく、例えば負の値をも取るように設定すると、優先順位P0に近いP1、P2では上記の条件は満足す可能性が低くなり、優先順位P0から幾つも離れた優先順位になって初めて上記条件を満たすように作用する。すなわち、係数βを小さな値に設定すると、復号画像の画質が必要以上に低下する可能性はあるものの、スキャン/符号化回数を減らすことが可能となる。
上記は境界線(境界条件)の数は9の例であるが、それより多い場合を示すより分かりやすい。図22はその例である。図示の符号2500で示される矢印は、係数βが大きい場合のスキャン/符号化の推移を示している。係数βが十分に大きい場合、スキャン/符号化は7回と多いものの、目標符号量Th以下で、その目標符号量Thに最も近い符号化パラメータi,jを決定できることを示している。一方、係数βを小さい場合(負の値を持つ場合)、符号2501で示される矢印の場合、矢印2500と比較して、不必要に圧縮してしまっているものの、スキャン/符号化は3回と少ない回数で完了していることを示している。
上記考察からわかるように、係数βの値はスキャン/符号化回数、或いは、最終的な目標符号量となる符号化データの画質に影響を与えるパラメータとしての意味を持つことが理解できよう。
そこで、本第4の実施形態では、この係数βを正負の値を取り得るように変更し、その値を操作部2(図11参照)により、ユーザが適宜設定できるようにする。ユーザレベルで見れば、この設定は符号化速度(或いは画質)の設定パラメータとして、指定することとすれば良い。
本第4の実施形態では、説明を簡単なものとするため、ユーザは−1,0(デフォルト),+1の3段階で符号化速度係数vを設定できるものとする。そして、入力する画像データのサイズ(原稿サイズ)に依存して決定される係数γに、設定した符号化速度係数vを乗算した値を係数βとして定義する。つまり、β=γ×vとして決定する。
勿論、設定できる段数は上記3段階に限らず、2つでも良いし、4以上であっても構わない。ユーザが操作する操作部2には、例えば、上記3段階のいずれかを選択するためのスライダバーをタッチパネル上に表示し、それでもって選択することとするが、選択する機構は如何なるものでも構わない。
本第4の実施形態は、基本的に第3の実施形態の図20のステップS56における係数βを決定するものである。実際の符号化処理はこれまでの説明から明らかであろうから、ここでは、操作部2による操作指示による制御部1の処理手順を図21のフローチャートに従って説明する。
先ず、ステップS61では、操作部2からの入力を検出する。ステップS62では入力が符号化速度に関する指示であるか否か、ステップS64では複写開始の指示であるかを判断する。符号化速度の指示であると判断した場合には、ステップS63に進み、指示に従って係数vを決定する(デフォルトはv=0としている)。また、符号化速度や複写開始指示以外の指示であると判断した場合には、ステップS65に進み、該当する処理を行なう。
さて、複写開始指示が入力されたと判断した場合、処理はステップS66に進んで、原稿読取部3のADFにセットされた原稿を1枚を原稿読み取り面(プラテンガラス上)に搬送する。このとき、公知技術に従って原稿のサイズを検出し、係数γを決定する(ステップS67)。
この後、ステップS68に進んで、係数γと係数vとを乗算することで係数βを算出し、符号化シーケンス制御部110に設定する。このとき、目標符号量Thも合わせて符号化シーケンス制御部110に設定する。
上記設定がなされると、処理はステップS69に進んで、原稿読取部3に対して原稿のスキャンを開始させると共に、符号化シーケンス制御部110に対して符号化処理を開始させる。そして、ステップS70にて、1ページ分の符号化データが格納されるまで待つ(符号化シーケンス制御部110から符号化完了の通知がくるのを待つ)。
さて、1ページの符号化処理が完了すると、処理はステップS71に進み、2次記憶装置7に第1のメモリ105に格納された1ページ分の符号化データを格納させる。そして、ステップS72において、復号・印刷処理を開始させる。復号印刷処理は、図示の処理とは独立した処理である。この後、ステップS73に進み、稿読取部3に未複写の原稿が残っているか否かを、不図示のセンサからの信号に従って判断する。未複写の原稿が残っている場合には、ステップS66以降の処理を繰り返す。
以上説明したように本第4の実施形態によれば、第3の実施形態での作用効果に加えて、符号化速度、或いは、出力画像の画質についてユーザが設定できることになる。
なお、第4の実施形態のフローチャートは、複写処理を例にしたが、印刷データを外部から印刷データを受信し印刷する場合に適用させても構わない。
以上、本発明に係る実施形態を説明した。
実施形態では、符号化対象を16×16画素ブロック単位に入力し、符号化する例を説明したが、このサイズも本発明を限定するものではない。要するに、2つ(或いはそれ以上でも良い)の異なる符号化技術を使って、同一の画像領域に対して生成された2種類の符号化データ量を比較できるようにすれば良い。
また、実施形態では、2種類の符号化技術として、非可逆符号化であるJPEG、可逆符号化であるJPEG−LSを用いる例を説明した。しかしながら、可逆、非可逆符号化技術としては、これによって限定されない。
ただし、JPEGは非可逆符号化であり自然画に適した符号化方式であり、一方、JPEG−LSは可逆符号化であり、自然画と対極にある文字/線画に適したものである。つまり、両符号化は、符号化方式、符号化対象の画像の性質が共に異なるものであるので、このようにお互いに補い合う方式を採用すると、本願発明は有利に作用することがわかるであろう。
また、実施形態では、符号化対象となる画像データは、スキャナやレンダリング処理より得られる例を説明したが、オリジナルの画像データを記憶した記憶媒体(例えばCDROM等)から読出し、それを圧縮符号化する場合に適用しても構わない。
更にまた、実施形態では、可逆符号化データと非可逆符号化データのそれぞれのデータ長のプロットした例として図7に示した。しかし、圧縮符号化対象の画像データ中の文字/線画が比較的鮮明であることを前提にするのであれば、図7のアンチエイリアス処理を施した文字/線画領域T2については、符号化品位の劣化を抑制する対象から外しても構わない。
また、上記各実施形態では、図11に示す複写機に適用した例を説明した。しかしながら、例えばパーソナルコンピュータ等の汎用情報処理装置にイメージスキャナ等の画像入力装置を接続して符号化する場合にも適用できるのは明らかである。この場合、各実施形態で示したフローチャートに係るプログラムを実行すれば良いので、本願発明はかかるコンピュータプログラムをもその範疇とするのは明らかである。また、通常、コンピュータプログラムはCDROM等のコンピュータ可読記憶媒体をそのコンピュータにセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、当然、そのようなコンピュータ可読記憶媒体も本発明の範疇に含まれる。
実施形態における符号化処理部のブロック構成図である。 図1における符号化シーケンス制御部内の符号化データ選択処理を行う部分のブロック構成図である。 第1の実施形態における符号化処理手順を示すフローチャートである。 第1の実施形態における符号化処理手順を示すフローチャートである。 第1の実施形態における符号化処理手順を示すフローチャートである。 図1における第2の符号化部における色数検出のスキャン方向を示す図である。 実施形態における可逆符号化データと非可逆符号化データの一方を選択する際の境界条件を説明するための図である。 量子化マトリクスの変更に伴って境界条件を変更することを示す図である。 サンプル原稿画像を示す図である。 実施形態で用いる量子化マトリクステーブルを示す図である。 実施形態が適用する複写機の構成図である。 実施形態における可逆符号化データ長が非可逆符号化データ長よりも長くても、可逆符号化データが選択される領域を示す図である。 境界条件関数を左シフトした例を示す図である。 第3の実施形態における符号化パラメータを決定する際の優先順位を示す図である。 第3の実施形態における符号化パラメータを決定する際の優先順位を示す図である。 第3の実施形態における符号化パラメータを決定する際の優先順位を示す図である。 第1の実施形態における符号化履歴記録部151に格納されるデータ構造を示す図である。 第2の実施形態における符号化履歴記録部151に格納されるデータ構造を示す図である。 第2の実施形態における符号化パラメータの変更処理手順を示すフローチャートである。 第3の実施形態における符号化パラメータの変更処理手順を示すフローチャートである。 第4の実施形態における予測符号化データ量の許容値βを決定するための処理手順を示すフローチャートである。 第4の実施形態での、許容値βに依存して符号化パラメータの更新推移が変化する例を示す図である。

Claims (11)

  1. 1ページの画像データ中のM0×N0個の画素で構成される画素ブロックを単位に入力し、符号化する画像符号化装置であって、
    入力する画像データ中の、着目しているM0×N0サイズの画素ブロックを、解像度変換することでM1×N1サイズの画素ブロック(M1<M0、N1<N0)を生成する解像度変換手段と、
    該解像度変換手段で変換されたM1×N1サイズの画素ブロック単位に、非可逆符号化データを生成する第1の符号化手段と、
    前記解像度変換手段で得られたM1×N1サイズの画素ブロックと、解像度変換前のM0×N0サイズの画素ブロックとの誤差を演算する誤差演算手段と、
    前記着目しているM0×N0個の画素で構成される画素ブロック単位に可逆符号化データを生成する第2の符号化手段と、
    前記着目しているM0×N0サイズの画素ブロック内の色数分布に関する色数分布情報を抽出する色数情報抽出手段と、
    該色数情報抽出手段で抽出された色数分布情報と、前記誤差演算手段で得られた誤差に基づき、前記着目しているM0×N0サイズの画素ブロックが予め設定された特徴を有するか否かを判断する判断手段と、
    該判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合、前記第1、第2の符号化手段で得られたいずれか一方の符号化データを、着目画素ブロックの符号化データとして選択し、
    前記判断手段によって前記着目している画素ブロックが前記特徴を有しないと判断された場合であって、前記第1の符号化手段で得られた非可逆符号化データのデータ量をLy、前記第2の符号化手段で得られた可逆符号化データ量をLx、及び、予め設定された非線形の境界関数をf()と定義したとき、
    条件:Ly≧f(Lx)
    を満たす場合には、前記可逆符号化データを着目画素ブロックに対する符号化データとして選択し、前記条件を満たさない場合には、前記非可逆符号化データを着目画素ブロックに対する符号化データとして選択する選択手段と、
    該選択手段で選択された符号化データを出力用メモリに出力する出力手段と
    を備えることを特徴とする画像符号化装置。
  2. 前記境界関数f()は、少なくとも非線形境界線を有すると共に、水平軸を可逆符号化データ長、垂直軸を非可逆符号化データ長としたとき、第1のパラメータiに従って前記非線形境界線は垂直軸方向にシフトし、第2のパラメータjに従って前記非線形境界線は水平方向にシフトする関数であり、
    前記第1の符号化手段は前記第1のパラメータiで決定される量子化マトリクスQiに従ってJPEG符号化データを生成する符号化手段であり、
    前記画像符号化装置は、更に、
    前記選択手段による選択処理の履歴情報を格納する履歴情報格納手段と、
    該出力用メモリに格納される総符号化データ量を監視し、予め設定された目標符号量を越えたか否かを判断する監視手段と、
    該監視手段で、前記総符号化データ量が前記目標符号量を越えたと判断した場合、前記記憶手段内の符号化データを破棄すると共に、
    前記第1のパラメータi、前記第2のパラメータj、並びに、前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合の前記選択手段が選択する対象を、可逆/非可逆符号化データのいずれにするかを決定するための第3のパラメータを、前記履歴情報格納手段に格納された履歴情報に基づいて決定し、
    前記画像データの再入力と前記第1、第2の符号化手段による再符号化を再実行させる制御手段と
    を備えることを特徴とする請求項1に記載の画像符号化装置。
  3. 前記選択手段は、1ページの画像の最初の符号化時において、前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合には、前記第1の符号化手段で得られた可逆符号化データを前記着目画素ブロックに対する符号化データとして選択することを特徴とする請求項2に記載の画像符号化装置。
  4. 前記制御手段は、
    前記履歴情報格納手段に格納された履歴情報に基づいて、前記出力用メモリに格納されている総符号化データ量に含まれる非可逆符号化データ量MJP、前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断されて前記出力用メモリに格納された可逆符号化データ量MLSH1、及び、前記境界関数f()に基づいて、前記出力用メモリに格納された可逆符号化データ量MLSH0を算出する算出手段と、
    該算出手段で得られたMJP,MLSH1,MLSH0の中の最大値がいずれであるかを求める最大値決定手段と、
    該最大値決定手段で決定された最大値が前記MLSH1であるとき、前記選択手段による前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合の選択対象を前記非可逆符号化データとするように前記第3のパラメータを更新し、
    前記最大値決定手段で決定された最大値が前記MLSH0であるとき、前記第1のパラメータiを更新し、
    前記最大値決定手段で決定された最大値が前記MJPであるとき、前記第2のパラメータjを更新するパラメータ更新手段と
    を含むことを特徴とする請求項3に記載の画像符号化装置。
  5. 前記制御手段は、
    前記履歴情報格納手段に格納された履歴情報に基づいて、前記出力用メモリに格納されている総符号化データ量に含まれる非可逆符号化データ量MJP、前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断されて前記出力用メモリに格納された可逆符号化データ量MLSH1、及び、前記境界関数f()に基づいて、前記出力用メモリに格納された可逆符号化データ量MLSH0を算出する算出手段と、
    該算出手段で得られたMJP,MLSH1,MLSH0の中の最大値がいずれであるかを求める最大値決定手段と、
    該最大値決定手段で決定された最大値が前記MLSH1であるとき、前記選択手段による前記判断手段によって前記着目している画素ブロックが前記特徴を有すると判断された場合の選択対象を前記非可逆符号化データとするように前記第3のパラメータを更新し、
    前記最大値決定手段で決定された最大値が前記MJP、MLSJH0のいずれかであるとき、予め設定された第1、第2のパラメータi,jの組み合わせの優先順位情報と前記履歴情報格納手段に格納された履歴情報に基づき、少なくとも前記第1、第2のパラメータi,jの一方を更新するパラメータ更新手段と
    を含むことを特徴とする請求項3に記載の画像符号化装置。
  6. 前記パラメータ更新手段は、
    前記優先順位情報の優先順位を示す係数をk、
    当該係数kで特定される前記第1、第2のパラメータi,jで符号化したと仮定した場合の1ページの予測符号化データ量をMpk、
    前記目標符号量をTh、
    許容値をβとしたとき、
    条件:Mpk≦Th+β
    を満たす係数kを求め、当該係数kで特定された第1、第2のパラメータi,jを更新後の第1、第2のパラメータi,jとして決定する
    ことを特徴とする請求項5に記載の画像符号化装置。
  7. 更に、互いに異なる複数の優先順位情報を記憶する優先順位記憶手段を備え、
    前記パラメータ更新手段は、前記第1、第2のパラメータを最初に更新する場合に、前記出力用メモリに格納された符号化データ中の可逆符号化データ量と非可逆符号化データ量の比率に従って、使用する優先順位情報を前記複数の優先順位情報の中から決定することを特徴とする請求項6に記載の画像符号化装置。
  8. 更に、前記許容値βを設定する設定手段を備えることを特徴とする請求項6又は7に記載の画像符号化装置。
  9. 1ページの画像データ中のM0×N0個の画素で構成される画素ブロックを単位に入力し、符号化する画像符号化装置の制御方法であって、
    入力する画像データ中の、着目しているM0×N0サイズの画素ブロックを、解像度変換することでM1×N1サイズの画素ブロック(N1<N0、M1<M0)を生成する解像度変換工程と、
    該解像度変換工程で変換されたM1×N1サイズの画素ブロック単位に、非可逆符号化データを生成する第1の符号化工程と、
    前記解像度変換工程で得られたM1×N1サイズの画素ブロックと、解像度変換前のM0×N0サイズの画素ブロックとの誤差を演算する誤差演算工程と、
    前記着目しているM0×N0個の画素で構成される画素ブロック単位に可逆符号化データを生成する第2の符号化工程と、
    前記着目しているM0×N0サイズの画素ブロック内の色数分布に関する色数分布情報を抽出する色数情報抽出工程と、
    該色数情報抽出工程で抽出された色数分布情報と、前記誤差演算工程で得られた誤差に基づき、前記着目しているM0×N0サイズの画素ブロックが予め設定された特徴を有するか否かを判断する判断工程と、
    該判断工程によって前記着目している画素ブロックが前記特徴を有すると判断された場合、前記第1、第2の符号化工程で得られたいずれか一方の符号化データを、着目画素ブロックに対する符号化データとして選択し、
    前記判断工程によって前記着目している画素ブロックが前記特徴を有しないと判断された場合であって、前記第1の符号化工程で得られた非可逆符号化データのデータ量をLy、前記第2の符号化工程で得られた可逆符号化データ量をLx、及び、予め設定された非線形の境界関数をf()と定義したとき、
    条件:Ly≧f(Lx)
    を満たす場合には、前記可逆符号化データを着目画素ブロックに対する符号化データとして選択し、前記条件を満たさない場合には、前記非可逆符号化データを着目画素ブロックに対する符号化データとして選択する選択工程と、
    該選択工程で選択された符号化データを出力用メモリに出力する出力工程と
    を備えることを特徴とする画像符号化装置の制御方法。
  10. 請求項9に記載の各工程をコンピュータに実行させるためのコンピュータプログラム。
  11. 請求項10に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
JP2006056901A 2006-03-02 2006-03-02 画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 Expired - Fee Related JP4697966B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006056901A JP4697966B2 (ja) 2006-03-02 2006-03-02 画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US11/680,378 US7925098B2 (en) 2006-03-02 2007-02-28 Image encoding apparatus and method with both lossy and lossless means

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006056901A JP4697966B2 (ja) 2006-03-02 2006-03-02 画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体

Publications (3)

Publication Number Publication Date
JP2007235758A JP2007235758A (ja) 2007-09-13
JP2007235758A5 JP2007235758A5 (ja) 2009-04-02
JP4697966B2 true JP4697966B2 (ja) 2011-06-08

Family

ID=38555851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006056901A Expired - Fee Related JP4697966B2 (ja) 2006-03-02 2006-03-02 画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体

Country Status (1)

Country Link
JP (1) JP4697966B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5263717B2 (ja) * 2009-07-10 2013-08-14 富士ゼロックス株式会社 画像処理装置、画像処理システム及びプログラム
JP5841944B2 (ja) * 2009-09-04 2016-01-13 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. スケーラブルな画像符号化および復号化
JP2012133586A (ja) * 2010-12-21 2012-07-12 Ntt Docomo Inc 表示装置、画面画像転送方法、及びプログラム
JP2014075631A (ja) 2012-10-02 2014-04-24 Samsung Display Co Ltd 圧縮器、駆動装置および表示装置
CN111243046B (zh) * 2020-01-17 2023-11-28 北京达佳互联信息技术有限公司 图像质量检测方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH077621A (ja) * 1993-06-16 1995-01-10 Canon Inc 画像送信装置
JP2003209697A (ja) * 2002-01-10 2003-07-25 Canon Inc 画像処理装置及び方法及びコンピュータプログラム及び記憶媒体
WO2003084243A1 (en) * 2002-03-28 2003-10-09 Sony Corporation Image compression/encoding device, method, and program
JP2004215093A (ja) * 2003-01-07 2004-07-29 Canon Inc 画像処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH077621A (ja) * 1993-06-16 1995-01-10 Canon Inc 画像送信装置
JP2003209697A (ja) * 2002-01-10 2003-07-25 Canon Inc 画像処理装置及び方法及びコンピュータプログラム及び記憶媒体
WO2003084243A1 (en) * 2002-03-28 2003-10-09 Sony Corporation Image compression/encoding device, method, and program
JP2004215093A (ja) * 2003-01-07 2004-07-29 Canon Inc 画像処理方法

Also Published As

Publication number Publication date
JP2007235758A (ja) 2007-09-13

Similar Documents

Publication Publication Date Title
US7925098B2 (en) Image encoding apparatus and method with both lossy and lossless means
US7627181B2 (en) Image encoding apparatus and method, computer program, and computer-readable storage medium
US7454070B2 (en) Image encoding apparatus and method, computer program, and computer-readable storage medium
JP4533043B2 (ja) 画像符号化装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US7715637B2 (en) Image processing apparatus and control method therefor
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
US7912300B2 (en) Image processing apparatus and control method therefor
JP4732203B2 (ja) 画像符号化装置及び復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US8224101B2 (en) Image processing apparatus and control method thereof with color data and monochrome data selection
JP3843581B2 (ja) 画像符号化装置、画像復号化装置および画像処理装置、並びに画像符号化方法、画像復号化方法および画像処理方法
US11223827B2 (en) Image encoding device, image decoding device, and the programs thereof
JPH1051642A (ja) 画像処理装置
JP4697966B2 (ja) 画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP2001045301A (ja) 画像処理装置
JP5375372B2 (ja) 圧縮符号化装置、および復号装置
JP3900017B2 (ja) 画像処理装置
JP2008042683A (ja) 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP4697965B2 (ja) 画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JPH04238462A (ja) 画像処理装置
JP4651109B2 (ja) 画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP4795160B2 (ja) 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2011004284A (ja) 画像符号化装置及びその制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090218

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110201

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: 20110225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110228

R150 Certificate of patent or registration of utility model

Ref document number: 4697966

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees