JP4902569B2 - 画像符号化装置及びその制御方法 - Google Patents

画像符号化装置及びその制御方法 Download PDF

Info

Publication number
JP4902569B2
JP4902569B2 JP2008037946A JP2008037946A JP4902569B2 JP 4902569 B2 JP4902569 B2 JP 4902569B2 JP 2008037946 A JP2008037946 A JP 2008037946A JP 2008037946 A JP2008037946 A JP 2008037946A JP 4902569 B2 JP4902569 B2 JP 4902569B2
Authority
JP
Japan
Prior art keywords
block
encoding
image
pixel
data
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
JP2008037946A
Other languages
English (en)
Other versions
JP2009200642A (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 JP2008037946A priority Critical patent/JP4902569B2/ja
Priority to US12/364,863 priority patent/US8452112B2/en
Publication of JP2009200642A publication Critical patent/JP2009200642A/ja
Application granted granted Critical
Publication of JP4902569B2 publication Critical patent/JP4902569B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/333Mode signalling or mode changing; Handshaking therefor
    • H04N1/3333Mode signalling or mode changing; Handshaking therefor during transmission, input or output of the picture signal; within a single document or page
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/333Mode signalling or mode changing; Handshaking therefor
    • H04N2201/33307Mode signalling or mode changing; Handshaking therefor of a particular mode
    • H04N2201/33342Mode signalling or mode changing; Handshaking therefor of a particular mode of transmission mode
    • H04N2201/33357Compression mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は画像データを符号化する符号化技術に関するものである。
従来、画像を文字部分などの2値あるいは限定色で構成される前景画像と、自然画像などの前景画像以外の部分(以下、背景画像という)とに分離して、それぞれに別々の符号化方式を適用する符号化手法が用いられている。
例えば、符号化対象の画像データ内の文字領域を判別し、文字領域内の各画素を2値化して文字画像データを生成し、MMRを用いてこれを符号化する。一方、文字画像を構成する画素(一般には黒画素)を、その周囲の背景画像中の画素値で置換する。この結果、文字画像等の高周波成分が除去される。そして、この置換後の画像をJPEGを用いて符号化する。そして、MMR符号化データ(前景画像の符号化データ)、JPEG符号化データ(背景画像の符号化データ)を統合し、オリジナル画像の符号化結果として出力する。
復号処理においては、背景画像の符号化データを復号する。そして、その復号して得られた背景画像の上に、前景画像(文字画像)の符号化データを復号して得られた文字画像の「文字」の部分だけを重ね合わせ、出力する。
なお、前景画像の代表的構成要素が文字としているが、必ずしもこれに限らない。要は、限定された色で構成され、かつ、シャープなエッジを有する要素、例えば、表の罫線や、線画、あるいは、簡易なクリップアートなどであっても構わないからである。
さて、上記のように、高周波成分を除去して得られた背景画像は、文字通り、高周波成分が無い、もしくは少ない。人間の視覚は、高周波成分については鈍感であるから、背景画像の解像度を多少落として、残りの高周波成分を削除したとしても、さほど目立たないので問題はない。そこで、背景画像の解像度を水平垂直とも1/2に落としてから符号化を行なう。この結果、解像度変換後の画像の画素数は、オリジナルの画像の1/4となるので、高い圧縮率で符号化データを生成することが可能になる。なお、復号側では、背景画像の符号化データを復号した後、その補間技術を用いて解像度を2倍(水平、垂直とも2倍)に変換する。そして、その上に、前景画像の復号結果を重ねることになる。かかる技術を開示した文献としては、特許文献1が挙げられる。
特開2002−77633号公報
上述のオリジナル画像から前景、背景画像に分離して符号化を行なう技術では、文字と自然画が混在した文書(以下、複合文書という)の構造を解析と、その分離処理に多くの時間を必要とする。例えば、この構造解析及び分離処理に要する時間が、1枚の原稿のスキャンに要する時間以上になる場合がある。この場合、単位時間当たりの原稿の読み取り枚数は、構造解析及び分離処理に要する時間に依存したものとなる。つまり、高速読取りが可能なイメージスキャナを用意したとしても、そのイメージスキャナの機能を発揮できないことになる。
この問題を解決する1つとして、次のような技術が考えられる。
先ず、イメージスキャナで読取って得た画像データについては、構造解析及び分離処理を行なわずに単純に符号化し、その符号化データを中間符号化データを記憶装置に記憶する。そして、この処理を、読取るべき原稿が存在する限り繰り返す。一方、記憶装置に格納された中間符号化データを復号し、復号して得られた画像データの構造を解析して前景と背景画像とに分離し、それぞれを別の符号化技術により再符号化を行なうことを繰り返す。
しかしながら、入出力機器の高解像度化に伴い、画像データの画素数は非常に多くなってきている。つまり、このように復号処理と再符号化処理を行うことは、ハードウェア、ソフトウェアのいずれによって行なったとしても、その処理にかかるの負荷は非常に大きなものとなる。
また、背景画像データの解像度を落として符号化する場合、前景と背景の誤判定による画質が劣化してしまうことも起こり得る。例えば、文字列のなかの一部の文字や、ひとつの文字を構成する画素の点や、線の一部が背景と判断された場合、解像度を落としてしまうことで、前景として符号化された部分と背景とした符号化された部分とで大きな画質差を生じる。
本願発明は、像域判定無しにブロック単位に符号化した多値の画像データを、再符号化するものである。そして、本発明は、文字線画等の前景画像と自然画等の背景画像とに分離して再符号化を行なうための処理にかかるの負荷の増加を抑制しつつ、更に圧縮率の高い符号化データを生成する技術を提供するものである。
かかる課題を解決するため、本発明の画像符号化装置は以下の構成を備える。すなわち、
複数の画素で構成される画素ブロックを単位に符号化された画像データを入力し、再符号化する画像符号化装置であって、
再符号化対象の符号化画像データを中間データとして格納する中間データ格納手段と、
該中間データ格納手段に格納された中間データを前記ブロック単位に復号し、復号した画像データをバッファに格納する復号手段と、
前記バッファに格納された画像データを解析し、文字線画を包含する前景画像領域を判別する判別手段と、
該判別手段で判別された前記前景画像領域の内部の画像データの個々の画素が、文字線画を構成する文字線画画素であるか、非文字線画画素であるかを識別して、識別情報を生成する識別手段と、
該識別手段で得られた識別情報を符号化し、出力する第1の符号化手段と、
前記前景画像領域の内部の前記文字線画画素の値を、周囲の非文字線画画素の値に基づいて決定される置換値で置換する置換手段と、
該置換手段による置換後の前記前景画像領域の内部の画像データから、前記ブロック単位に符号化データを生成し、出力する第2の符号化手段と、
前記前景画像領域の外部については、前記中間データ格納手段に格納された各画素ブロックの符号化データを参照して、且つ、画素値まで復元することなしに、符号化データを生成し、出力する第3の符号化手段とを備える。
本発明の構成によれば、像域判定無しに画素ブロック単位に符号化した多値の画像データを、再符号化する場合に、文字線画等の前景画像と自然画等の背景画像とに分離して再符号化を行なうための処理にかかるの負荷の増加を抑制しつつ、更に圧縮率の高い符号化データを生成することが可能になる。
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
[第1の実施形態]
図1は、実施形態における画像符号化装置のブロック構成図である。
本実施形態では、例えば、イメージスキャナによって読取られた多値画像データをそのままJPEG符号化し、その結果の符号化画像データを中間符号化データとしてハードディスク等の記憶装置にスプールする。そして、本実施形態の画像符号化装置は、そのスプールした中間符号化データを再符号化対象として扱う。すなわち、スプールした符号化データを復号し、前景、背景画像に分離した上で、再符号化する。なお、画像データの発生源がイメージスキャナであるとしているが、これは便宜的なものである。つまり、発生源は、画像データを記憶する記憶媒体でも構わず、その種類は問わない。また、スプールする際の符号化処理は、本実施形態の必須要件とはならない。予めJPEG符号化された複数の画像データを格納している記憶装置から、順次再符号化する場合にも適用できるからである。
また、画像データは、各コンポーネント(色成分)が8ビット(256階調)の輝度値で表わされるRGBカラー画像データであるとして説明する。しかしながら、これに限らず、モノクロ画像データやCMYKカラー画像データに適用しても構わない。また、画像は水平方向の画素数をW、垂直方向の画素数をHのサイズとし、説明簡易化のため、W、Hは共に8の整数倍であるとして説明する。
以下、図1における画像処理装置により、各成分が8ビットで表現されたRGBカラー画像を符号化する処理の流れを説明する。
まず、信号線1019から符号化対象の画像データが入力される。画素データの入力順序はラスタースキャン順とする。1画素はR,G,Bの3成分で構成され、入力する各成分の順序もR、G、Bの順とする。R,G,Bをそれぞれ成分番号0,1,2と定義し、画像の左上隅を座標(0,0)とする。そして、水平右方向画素位置x、垂直下方向画素位置yにある画素の成分番号Cの値をP(x,y,C)と表すこととする。例えば、位置(x、y)=(3,4)である画素の各成分(R,G,B)=(255,128,0)という値を持つ場合、P(3,4,0)=255、P(3,4,1)=128、P(3,4,2)=0と表現する。なお、各成分の値ではなく、位置(x、y)の“画素”を表現する場合には単純にP(x,y)と記す。
JPEG符号化部1001は信号線1019から入力される画素データを適宜不図示の内部バッファメモリに格納し、国際標準符号化方式JPEGのBaseline方式により符号化を行い、得られた符号化データを中間データ格納部1002に格納する。
本実施形態では説明簡易化のため、JPEG符号化の前処理として一般的に行われる色変換処理やサブサンプリング処理は実施しないものとする。また、符号化単位は8×8画素で構成されるブロックがMCU(Minimum Coded Unit)であるものとする。しかしながら、RGBからYCbCrなど、他の色表現形式への変換処理を適用したり、サブサンプリングを適用しても構わない。
なお、別の実施形態では、所定の大きさのブロックを符号化の単位とする、JPEG Baseline以外の符号化方式を適用しても良い。ここでブロックを符号化の単位とするとは、あるブロックとその符号化データとの対応が取れるものであれば良い。JPEG符号化で、8×8画素のブロックのDC係数を差分値に変換して符号化しているように、ブロックの符号化データが必ずしも完全に独立している必要はない。しかしながら、画像をブロックに分割して、それぞれ独立に符号化する手法は、ブロックと符号化データとの対応が明確であるため、本発明に好適である。例えば、FlashPix、JPEG Part3、JPEG2000などを利用すれば、汎用フォーマットで、かつ、ブロック単位に独立の符号化データを得ることができる。
JPEG符号化部1001は、上記のようにして、入力した画像データをMCU(実施形態では8×8画素のブロック)単位に符号化し、その結果を中間データ格納部1002に格納する。この処理を、符号化すべき画像が残っているかぎり繰り返すことになる。
一方、JPEG復号部1003は、JPEG符号化部1001と非同期に、中間データ格納部1002に格納される符号化データの読み出して不図示の内部バッファメモリに格納しながら復号処理を行う。そして、JPEG復号部1003は、復号結果である画像データをバッファメモリ1005に格納する。
JPEGは可変長符号化の一種であり、MCUブロックの符号化データの符号長は固定とはならない。つまり、各MCUブロックの符号化データの先頭位置は、実際に復号しないと不明である。実施形態では、この符号化データを、後から、MCUブロック単位にアクセスする。このため、JPEG復号部1003は、復号処理対象のMCUを中間データ格納部1002から読出す毎に、そのMCUの所在位置を示す情報をブロック情報保持部1004に記録する。実施形態では、この所在位置として、MCUブロックの符号化データの先頭位置と長さ(ビット数)とした。図2にブロック情報保持部1004の内部に記録される情報の構造を示す。図中、MCU識別番号は、JPEG符号化データ内の配置順序を表し、最初のMCU符号化データの識別子を「0」、次を「1」…という具合に順番に番号を振ったものである。本実施の形態では水平方向W画素、垂直方向H画素で構成される画像データを符号化対象とし、8×8画素ブロックで1MCUを構成している。従って、1つの画像データのJPEG符号化データ内には、W×H/64個のMCUが存在することになる。識別番号iのMCUについて、その符号化データの位置p(i)とその長さ(ビット数)cl(i)を格納する。ここで、符号化データの位置p(i)はJPEG符号化データの先頭からのビット数とする。JPEG符号化データ中にエントロピ符号化セグメント(Entropy−coded Segment)が1つしか含まれない場合、セグメントの先頭位置を別途保持し、そこからの相対位置を保持するようにしても構わない。このような場合には、合算関数Σを用いて、
p(i)= Σcl(j)
(j=0、1、2、…、i−1)
により、各MCUの符号化データの長さcl(i)から各MCUの符号位置p(i)を導出することができるので、符号位置を記録しておかなくても構わない。
テキスト領域判別部1006はバッファメモリ1005に格納される復号画像データの構造を解析し、画像中の文字や線画等の高周波となる画像部分(以下、単に文字部分という)を特定する。そして、テキスト領域判別部1006は、その外接矩形の情報をテキスト領域情報(文字線画領域情報、前景画像領域といっても構わない)として出力する。
このテキスト領域情報はテキスト領域の位置を特定するための情報であり、本実施の形態では矩形の左上隅の画素位置(bx, by)、右下隅の画素位置(ex,ey)を組み合わせた4次のベクトル(bx,by,ex,ey)とする。この他にも、4隅のいずれか(左上隅など)の画素位置と水平・垂直方向画素数などにより位置を特定しても構わない。なお、テキスト領域情報の数は画像に依存し、場合によってはテキスト領域が存在しないこともあることに注意されたい。
図3に本実施形態の画像符号化装置による符号化に好適な文字、写真等の混在画像(復号文書)の一例を示す。この画像は、図4に示すTR1、TR2、TR3の3つのテキスト領域を有する例である。図中、番号i(i=1、2、…)で識別されるテキスト領域TRiの左上隅画素位置を(bxi、byi)、右下隅画素位置を(exi、eyi)としている。したがって、テキスト領域TR1,TR2,TR3のそれぞれの領域情報は、(bx1,by1,ex1,ey1)、(bx2,by2,ex2,ey2)、(bx3、by3、ex3,ey3)である。
テキスト領域判別の具体的方法としては、種々の方式が提案されており、例えば特開2002−077633に開示されている手法などを用いることができる。まず、画像の輝度成分のヒストグラムから2値化閾値を定めて2値化画像を生成する。次に、輪郭線追跡により文字を黒画素(他の画素よりも濃度の濃い画素)の塊として抽出する。そして、それらの横幅、高さなどから、文字らしい塊だけを残す。更に、その塊を、それぞれの位置関係や、横幅、高さからグループ化していく。そして、このグループ化した外接矩形で示される領域をテキスト領域を特定する方法である。本実施形態では、かかる技術を利用するものとするが、勿論、これ以外の技術でもってテキスト領域を判別しても構わない。
文字画素判定部1007はテキスト領域判別部1006で得られたテキスト領域TRiに対し、その領域(bxi,byi,exi,eyi)の内部に包含されている各画素P(x、y)(bxi≦x≦exi、byi≦y≦eyi)の特徴を調べ、文字を構成する画素(黒画素)か否かを判定する。そして、文字画素判定部1007は、文字線画を構成する画素であれば“1”、そうでない場合(非文字線画を構成する画素の場合)“0”を有する2値の文字画像データ(2値化画像データ)として文字画像データ用バッファメモリ1008へ格納する。つまり、この文字画像データ用バッファメモリ1008に格納する2値データは、2値画像データと見ることもできるし、各画素が文字線画画素か非文字線画画素かを識別するための識別情報であると見ることもできる。
文字を構成する画素か否かを判定する方法についても種々の提案方式があり、必要とする精度や許容される処理の複雑さに適合するものを用いれば良い。ここでは単純な方法として、テキスト領域毎に各成分のヒストグラムを調べて、それぞれに閾値を決定する。そして、この閾値と各画素の成分P(x,y,C)を大小比較し、文字画素か否かを判断する。
実施形態では、各成分とも輝度成分の画像を符号化することになるので、決定した閾値以下の画素を文字を構成する画素とし、閾値を超える画素をそれ以外(背景)の画素として判定すればよいであろう。当業者であれば容易に理解できるように、符号化対象の画像データが仮にYMCである場合には、閾値以上の値を持つ画素が文字を構成する画素、それ以外が非文字の画素と判定すれば良い。
画素P(x、y)の判別結果をB(x,y)とし、TRiから生成される2値の文字画像データをBMiと記す。テキスト領域判別部1006から複数のテキスト領域が出力される場合には、その夫々について同様に処理を行い、複数の文字画像データを生成する。図5(a),(b),(c)に、図4のテキスト領域TR1、TR2、TR3のそれぞれから得られる文字画像データBM1、BM2、BM3の概要を示す。ここでB(x,y)が“1”である、復号結果の画像データ中の画素P(x、y)の平均を求めて、文字画像データBMiの文字の色として保持する。
穴埋め処理部1010はテキスト領域TRiについて、バッファメモリ1005に格納される復号画像データと文字画像データ用バッファ1008に格納される文字画像データBMiを参照して、テキスト領域内(文字線画領域内)の背景画素、即ち、非文字の画素として判定された画素の平均値を求める。以下、座標(bxi,byi,exi,eyi)で特定されるTRiについて背景部の平均を求める方法について述べる。まず、1つのテキスト領域内の背景画素の個数Nt、すなわちB(x、y)=0(但し、bxi≦x≦exi、byi≦y≦eyi)である数を求める。次に、背景画素の各成分Cについて、以下の式により輝度値の総和S(C)を求める。
Nt=Σ{1−B(x,y)}
S(C)=ΣP(x、y、C)×(1−B(x,y))
但し、上式において、x、yは、bxi≦x≦exi、byi≦y≦eyiであるという条件を満たす。また、「1−(B(x,y)」が“1”となるのは、着目画素P(x,y)が、非文字を構成する画素として判定された場合(文字を構成する画素ではないと判定された場合)になる。
S(C)とNtが得られれば、背景画素の成分Cの平均値Av(C)はAv(C)=S(C)/Ntにより求まる。穴埋め処理部1010は、求めた平均値Av(C)を用いて、バッファ1005に格納される復号画像データの文字画素の値を置き換える。即ち、バッファ1005内のTRi内部のB(x,y)=1である画素P(x,y)の各成分値P(x,y,C)を、算出したAv(C)で置き換える。
穴埋め処理部1010の目的は、前景として符号化される画素値を周囲との変化が少なくなるように別の値に置き換えることである。言い換えれば、文字線画に代表される高周波成分を除去するための処理を行なうためと言えば分かりやすい。この結果、バッファ1005内には、高周波成分が無い、もしくは、少ない画像が格納されるので、背景画像の符号化効率を高めることができる。
なお、本実施の形態ではテキスト領域の背景画素の平均値で置き換える方法を用いたが、同様の効果が得られるものであれば他の方法を用いても構わない。例えば、8×8サイズのブロックなど、より小さい単位で背景画素の平均値を求めて前景画素値を置き換えたり、前景画素ごとに周囲の背景画素の平均値で置き換えるなどしても良い。また、単純に、直前の背景画素値を設定するようにしても良い。
さて、上記の通り、穴埋め処理部1010により、バッファ1005に格納される復号画像データは、文字等の前景を除いた背景画像データに作り変えられる。図6は、図3に示した画像から、バッファ1005に格納される最終的な背景画像データの概略を示している。
第1の符号化部として機能する文字画像データ符号化部1009は、文字画像データ用バッファ1008に格納される2値の文字画像データBMiをG4ファクシミリの標準であるMMR(modified modified READ)符号化方式を用いて符号化し、符号化データを符号列形成部1018へと出力する。なお、ここでは2値画像符号化方式の例としてMMRを用いたが、JBIGやJBIG2など、他の符号化方式を用いても構わないことは言うまでもない。但し、可逆符号化を用いることが望ましい。また、この符号化データには、BMiの文字の色情報も組み合わせて持つようにする。
一方、バッファ1005に生成された背景画像データに対して、ブロック再符号化部1021(第2の符号化部として機能する)、ブロック符号化データ取得部1012により、背景画像符号化データが生成され、符号列形成部1018へと出力される。
背景画像データの符号化処理は中間データ格納部1002に格納される中間データのMCUを構成する画素ブロックを単位として行われる。本実施の形態では8×8画素のブロックで1つのMCUを構成するため、8×8画素のブロック(以下、MCUブロックと呼ぶ)を単位に、ラスタースキャン順に処理していく。本実施の形態では、各MCUブロックの符号化データ(以下、MCU符号化データと呼ぶ)の生成方法として2系統を備える。一つは、バッファ1005から該当するMCUブロックのデータを取得し、ブロック再符号化部1021の処理によりMCU符号化データを作り出す方法である。もう一つは、着目するMCU符号化データを新たに生成するのではなく、中間データ格納部1002に格納されている中間データからMCUブロック(着目画素ブロック)の符号化データをそのまま抽出し、符号化データとして出力する方法である。後者の構成により、無駄な符号化処理が省かれ、処理にかかる時間を短縮できるようになる。以下、背景画像の符号化処理を更に詳細に説明する。
背景画像データの符号生成に先立ち、領域拡大部1011は、テキスト領域判別部1006から出力されるテキスト領域TRiで示される範囲を広げた拡大テキスト領域ERiを求める。この拡大テキスト領域を求める目的は、テキスト領域TRiの境界のx、yの座標が、必ずしも原画像の8の整数倍となるとは限らないためである。また、この拡大テキスト領域ERiは、各MCUブロックの符号を生成する際に、ブロック再符号化部1021による再符号化処理と、ブロック符号化データ取得部1012による中間データ格納部1002からのMCU符号化データの抽出とのいずれを用いるかの選択基準として活用される。すなわち、着目MCUブロックが、拡大テキスト領域ERiの内部に位置する場合、ブロック再符号化部1021は着目MCUブロックの符号化データを新に生成する。一方、着目MCUブロックが拡大テキスト領域ERiの外部の位置する場合、ブロック符号化データ取得部1012は、着目ブロックMCUの符号化データとして中間データ格納部1002内のMCU符号化データを読出し、そのまま出力する。
セレクタ1017は、着目MCUブロックが、拡大テキスト領域ERi内にあるときは、ブロック再符号化部1021からの符号化データを選択し出力する。また、セレクタ1017は、拡大テキスト領域ERi外の場合には、ブロック符号化データ取得部1012が取得した符号化データを選択し、出力する。
本実施の形態においては、拡大テキスト領域ERiは、テキスト領域TRiを含むMCUブロックの集まりと、その右端に1ブロック分を追加した領域である。この拡大テキスト領域ERiは、穴埋め処理部1010における前景画素の穴埋め処理の影響を受けるMCUブロックの範囲を示すものである。即ち、領域ERi内部のMCUブロックのMCU符号化データは、中間データ格納部1002に格納されるMCU符号化データとは異なる可能性がある。反対に、どの拡大テキスト領域ERiにも含まれないMCUブロックは中間データ格納部に格納されているMCU符号化データをそのまま利用できる。右端に1ブロック分を追加しているのは、直前のMCUブロックが変更されたことにより、DC差分を作り変えなければならなくなる可能性を考慮したものである。
図7を用いてテキスト領域TRiの拡大方法を説明する。図中、斜線領域はテキスト領域TRiを表し、1つのマス目は個々のMCUブロックを表す。太い実線で囲まれる領域は拡大テキスト領域ERiである。図中、網掛け部分は、右端に追加した1ブロック分を表している。座標(bxi,byi,exi,eyi)で特定されるテキスト領域TRiに対し、拡大テキスト領域ERiの座標を(bxi’,byi’,exi’,eyi’)とするとき、
bxi’=floor(bxi/mw)×mw
byi’=floor(byi/mh)×mh
exi’=( ceil (exi/mw)+ 1 ) ×mw
eyi’=( ceil (eyi/mh)+ 1 ) ×mh
である。ここで、mwとmhはそれぞれMCUブロックの幅と高さを表し、本実施の形態では8である。また、floor(x)は実数値xを超えない最大の整数値を、ceil(x)は実数値x以上の最小の整数値を表す。
次に、ブロック再符号化部1021によるMCUブロックの符号化処理について説明する。
ブロック再符号化部1021は離散コサイン変換部1013、係数量子化部1014、ブロックデータ用バッファ1015、ハフマン符号化部1021から構成され、着目しているMCUが拡大テキスト領域ERi内にある場合に符号化処理を行なう。具体的には、ブロック再符号化部1021は着目するMCUブロックの画像データをバッファ1005から読み出し、R,G,Bの各成分について、離散コサイン変換、係数量子化、ハフマン符号化を行う。特に言及しない限り、ここで行われるMCUブロックの符号化処理は、国際標準JPEGに準じる。係数量子化部1014で用いる量子化マトリクス、ハフマン符号化部1016(エントロピー符号化部でもある)で使用するハフマン符号テーブルは、JPEG符号化部1001が中間符号化データを生成する際に利用したものと同じものを用いる。
ブロック符号化データ取得部1012は、着目しているMCUが拡大テキスト領域ERi外にある場合に、中間データ格納部1002から該当する符号化データを取得し、出力する(第3の符号化部として機能する)。具体的には、ブロック符号化データ取得部1012は、ブロック情報保持部1004に格納されるMCU符号化データに関する情報(位置p(i)と長さcl(i))を参照して、着目するMCUブロックのMCU符号化データを中間データ格納部1002から取り出して出力する。
セレクタ1017は先に説明した通りである。すなわち、領域拡大部1011から出力される拡大テキスト領域ERiの情報を参照して着目するMCUブロックがERiの内部か否かを判定する。そして、その着目MCUがERiの内部である場合には、ブロック再符号化部1021から出力されるMCU符号化データを符号列形成部へと出力する。一方、着目MCUがERiの外部である場合には、ブロック符号化データ取得部1012により抽出されるMCU符号化データを符号列形成部へと出力する。
なお、着目するMCUブロックがERiの外部である場合には、基本的に、ブロック再符号化部1021を動作させる必要はなく、反対に、ERiの内部である場合にはブロック符号化データ取得部1012を動作させる必要はない。このため、図1に示すように、領域拡大部1011の出力を、ブロック再符号化部1021及びブロック符号化データ取得部1012に供給するようにした。
また、上記の例外処理として、拡大テキスト領域ERiの左端のブロックのひとつ前のブロック、図7の例ではERiの左境界の外にある斜線で示す4つのブロックに関してはERiの外部であってもブロック再符号化部1021を動作させる。これはその次のブロックの符号化において、DC係数値の差分を求める際に、直前のブロックのDC係数の量子化値を必要とするためである。これら拡大テキスト領域ERiの直前に位置するブロックについては、ブロック再符号化部1021を動作させるが、そこから出力される符号は破棄する。なお、上記は、MCUのDC成分が、1つ前のMCUのDC成分との差分として符号化されることを前提にしているが、1つのMCU単独で、そのMCUの画像データを復号できるのであれば、図7の拡大テキスト領域内の右端の1ブロックの列は不要とできる。
符号列形成部1018は、文字画像データ、背景画像データの符号化結果に加えて、復号の際に必要となる各種の情報を加え、所定のフォーマットの最終符号化データを生成し、装置外部へと出力する。この際、文字画像データ符号化部1009からの出力、セレクタ1017からの出力を必要に応じて、適宜不図示の内部バッファに格納する。図8は符号列形成部1018から出力される最終符号化データの構造の例である。最終符号化データの先頭部分(ファイルヘッダ)には画像の水平/垂直方向の画素数、色成分の数や種別、各成分のビット数など、復号に必要とされる様々な情報が付加される。続く符号化データリストにはこの最終符号化データに含まれる文字画像符号化データ、背景画像符号化データの総数Nと、各符号化データについての情報が格納される。各符号化データの情報には符号化データに対応する画像中の矩形領域の座標情報、データタイプ、符号化データのオフセット、符号長が含まれる。座標情報は矩形領域の左上隅の画素位置、右下隅の画素位置である。データタイプは符号化データが文字画像データであるか背景画像データであるかを識別するための情報である。符号化データのオフセット値は、最終符号化データの先頭位置から着目する符号化データの先頭位置までの符号長であり、また、符号長には着目する符号化データの長さが格納される。図8に示した符号の構造は、あくまでもその一例であり、このように複数の符号化データを統合して保持できる形態であればこれに限らず、例えば、PDF等であっても良い。
本実施形態の画像処理装置で生成した符号化データは、従来技術の説明部分で述べたように、前景画像、背景画像をそれぞれ復号して、背景画像データの上に、前景画像の文字部分を重ね合わせれば良い。なお、このとき、符号化データのヘッダには、幾つのテキスト領域が存在するか(存在しない場合も有り得る)、及び、1以上のテキスト領域が存在する場合には、その領域を特定する情報を格納する。
以上のように、本実施形態によれば、予めJPEG符号化された画像データを入力し、一旦復号する。そして、文字画像と背景画像とに分離する。そして、文字画像については、文字を構成する画素を文字用の符号化を用いて符号化する。また、文字画像中の文字を構成する画素を、その周囲の非文字の画素から算出した置換値で置換し、高周波成分を除去もしくは低減した上で階調画像用の符号化を行なう。更に、背景画像については、入力した符号化データのMCU符号化データを有効利用し、再符号化処理にかかる負担を削減する。この結果、入力した符号化データよりも更に圧縮率の高い符号化データを高速に生成することが可能になる。
[第1の実施形態の変形例]
上記第1の実施形態をコンピュータプログラムによって実現する例を第1の実施形態の変形例として以下に説明する。
図12は、本変形例における情報処理装置(例えばパーソナルコンピュータ)のブロック構成図である。
図中、1401はCPUで、RAM1402やROM1403に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。1402はRAMで、外部記憶装置1407や記憶媒体ドライブ1408、若しくはI/F1409を介して外部装置からダウンロードされたプログラムやデータを記憶する為のエリアを備える。また、RAM1402は、CPU1401が各種の処理を実行する際に使用するワークエリアも備える。1403はROMで、ブートプログラムや本装置の設定プログラムやデータを格納する。1404、1405は夫々キーボード、マウスで、CPU1401に対して各種の指示を入力することができる。
1406は表示装置で、CRTや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。1407はハードディスクドライブ装置等の大容量の外部記憶装置である。この外部記憶装置1407には、OS(オペレーティングシステム)や後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどがファイルとして保存されている。また、CPU1401は、これらのプログラムやデータをRAM1402上の所定のエリアにロードし、実行することになる。
1408は記憶媒体ドライブで、CD−ROMやDVD−ROMなどの記憶媒体に記録されたプログラムやデータを読み出してRAM1402や外部記憶装置1407に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良い。この場合、記憶媒体ドライブ1408は、CPU1401による制御によって、これらのプログラムやデータをRAM1402上の所定のエリアにロードする。
1409はI/Fで、このI/F1409によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のRAM1402や外部記憶装置1407、あるいは記憶媒体ドライブ1408に入力することもできる。1410は上述の各部を繋ぐバスである。
上記構成において、本装置の電源がONになると、CPU1401はROM1403のブートプログラムに従って、外部記憶装置1407からOSをRAM1402にロードする。この結果、キーボード1404、マウス1405の入力が可能となり、表示装置1406にGUIを表示することが可能になる。ユーザが、キーボード1404やマウス1405を操作し、外部記憶装置1407に格納された画像処理用アプリケーションプログラムの起動の指示を行なうと、CPU1401はそのプログラムをRAM1402にロードし、実行する。これにより、本装置が画像符号化装置として機能することになる。
以下、CPU1401が実行する画像符号化用のアプリケーションプログラムの処理手順を図9のフローチャートに従って説明する。基本的に、このプログラムは、図1に示す各構成要素に相当する関数を備えることになる。ただし、図1におけるブロック情報保持部1004、バッファ1005、文字画像データ用バッファ1008、ブロックデータ用バッファ1015の各領域はRAM1402内に予め確保することになる。また、中間データ格納部1002は外部記憶装置1407内に確保する。また、符号化結果は、外部記憶措置1407にファイルとして格納するものとして説明する。
まず、CPU1401は、ステップS901において、I/F1409によって接続される外部装置(例えば、ADF付きイメージスキャナ)から符号化対象の画像データの入力とJPEG符号化、そして、その符号化して得られた画像データを中間符号化データとして外部記憶装置1407に格納する処理を開始させる(JPEG符号化部1001の処理に相当)。この結果、外部記憶装置1407には、符号化しようとしている画像(1以上)の、JPEG符号化データファイルが格納されていく。
次に、ステップS902において、外部記憶装置1407に格納される中間符号化データ(符号化データファイル)を1つ選択し、それを復号し、復号画像をRAM1402内に格納する(JPEG復号部1003の処理に相当)。このとき、図2の構成のブロック情報を生成し、RAM1402内に格納する。
続いて、ステップS903で、復号した中間データの構造を解析し、画像中のテキスト領域TRiを特定し、その位置情報を生成する(テキスト領域判別部1006の処理に相当)。
次に、ステップS904において、ステップS903で特定したそれぞれのテキスト領域について、各画素の特徴を調べ、文字を構成する画素か否かを表す文字画像データを生成する(文字画素判定部1007の処理に相当)。文字画像データはRAM1402内に格納する。
次に、ステップS905で、ステップS904で文字を構成する画素と判定された画素について、RAM1402に格納される復号画像データの画素値を周囲画素との変化が少なくなるように置き換えて、背景画像データを生成する(穴埋め処理部1010の処理に相当)。
ステップS906では、ステップS904で生成した文字画像データを符号化し、文字画像符号化データを生成する(文字画像データ符号化部1009の処理に相当)。
ステップS907では、ステップS903で求めたテキスト領域TRiに対して、拡大テキスト領域ERiを求める(領域拡大部1011の処理に相当)。
ステップS908では、ステップS905により生成した背景画像データに対する符号化データを生成する。なお、このステップS908の詳細は後述する。
そして、ステップS909では、ステップS906で生成される文字画像符号化データと、ステップS908で生成される背景画像符号化データを、所定のフォーマットで統合し、最終符号化データを生成して出力する(符号列形成部1018の処理に相当)。
そして、ステップS910にて、全画像の符号化処理が完了したか否かを判定し、否の場合にはステップS902以降の処理を繰り返す。
次に、図9のステップS908の処理の詳細を図10のフローチャートに従って説明する。
ステップS1001ではMCUの識別番号を表す変数iの初期値として0を設定する。
ステップS1002では着目するMCU(i)が拡大テキスト領域ERiのいずれかの内部にあるか否かを判断する。拡大テキスト領域内である場合にステップS1008に、そうでない場合にはステップS1003に処理を進める。
ステップS1003ではRAM1402内に格納したブロック情報から、着目するMCUブロックの符号位置p(i)と符号長cl(i)を読み出す。続いて、ステップS1004では外部記憶装置1407に格納される中間データのp(i)ビット目からcl(i)ビット分のデータを取り出して、着目するMCUブロックの符号として出力する。ここで、ステップS1003とステップS1004の処理はブロック符号化データ取得部1012での処理に相当する。
また、ステップS1005では、着目するMCUブロックが拡大テキスト領域の左隣に位置するか否かを判断し、拡大テキスト領域の左隣に位置する場合にはステップS1006へ、そうでない場合には、ステップS1010へと処理を移す。
ステップS1006では、RAM1402内に格納される中間データの復号画像から着目するブロックの画像データを読み出す。
ステップS1007では、ステップS1006により読み出したブロックの画像データを離散コサイン変換、量子化により、量子化された係数値(DC成分の量子化値)を生成する。これは、次のMCUの符号化時に用いるためである。
一方、MCU(i)が拡大テキスト領域の内部にある場合には、ステップS1008でRAM1402内に格納される中間データの復号画像から着目するブロックの画素データを読み出す。
続いてステップS1009により、ステップS1008で読み出したブロックの画素データに対して、離散コサイン変換、量子化、ハフマン符号化を適用し、MCU符号化データを生成する。
ここで、ステップS1006、S1007、S1008、S1009の処理はブロック再符号化部1021の処理に相当する。
ステップS1010では、処理対象のMCUを次のMCUへと移すため、変数iに1を加えて更新する。
ステップS1011では、全てのMCUブロックについて処理が終了したか否かを判断し、未処理のMCUブロックが残っている場合にはステップS1002に戻り、処理を継続する。全てのMCUブロックの処理が終了した場合には符号化処理を終了する。
以上説明したように本変形例によっても、第1の実施形態と同様の作用効果を奏することが可能となるのは明らかであろう。すなわち、文字画像データと背景画像データに分離してそれぞれに適した符号化を行う適応的符号化において、一時的に格納した中間データの活用により背景画像符号化データ取得のためのブロック再符号化処理を削減できる。
なお、上記処理の順番はここで説明したフローに限定されるものではない。例えば、図9のステップS906における文字画像データの符号化は、ステップ904とステップ909の間で、どのタイミングで行っても構わない。本変形例では、中間データを外部記憶装置1407に格納するものとして説明したが、RAM1402に領域を確保して保持しても構わない。
[第2の実施形態]
上記第1の実施形態及びその変形例では、拡大テキスト領域の内部は全て再符号化処理の対象とした。本第2の実施形態では、拡大テキスト領域の内部でも中間符号化データを利用できる部分については、できるだけこれを利用する例を説明する。
なお、本第2の実施形態でも、符号化対象の画像データは、RGB画像データとする。但し、モノクロ画像データや、CMYKカラー画像データに適用しても良い。また、画像は水平方向W画素、垂直方向H画素により構成されるものとする。
図11は、本第2の実施形態に係る画像処理装置のブロック構成図である。第1の実施形態で説明した図1と同じ機能のブロックについては同じ番号を付した。
図11の構成で、第1の実施形態の図1と異なる点は、まず、文字含有ブロック判定部1101、DC差分修正部1102を追加した点である。また、2入力1出力のセレクタに変えて、3入力1出力のセレクタ1103を追加し、JPEG復号部1003とは若干処理が異なるJPEG復号部1104を用いている点である。これ以外は、第1の実施形態と同様であるので、その説明は省略する。
本第2の実施形態における画像符号化処理は次の通りである。
JPEG復号部1104は、中間データ格納部1002に格納されるJPEG符号化データを読み出して復号し、復号して得られた画像データをバッファ1005に格納する。この際、第1の実施形態で説明したJPEG復号部1003と同様に、各MCUの先頭位置と長さ(ビット数)をブロック情報保持部1004へと記録するが、本実施の形態では、更に、MCUを復号する際に得られた各成分のDC係数量子化値を記録する。図13に本実施形態においてブロック情報保持部1004に格納されるブロック情報の構造を示す。同図において、D0(i)はMCU識別番号iのブロックの第1成分(実施形態ではR成分)のDC係数量子化値を表し、D1(i)は同第2成分(G成分)、D2(i)は同第3成分(B成分)のDC係数量子化値を表す。
文字含有ブロック判定部1101は、文字画像データ用バッファ1008を参照し、拡大テキスト領域ERi内の着目MCUブロックが、文字を構成する画素を含むか否かを判定する。文字画像データ用バッファ1008には、2値化した画像データ、すなわち、文字を構成する画素は“1”、それ以外は“0”のデータが格納されている。従って、文字含有ブロック判定部1101は、着目画素ブロック(MCU)内に、“1”の画素が存在するか否かを判定すれば良い。以下、以下、文字画素を含むMCUを文字含有ブロックという。
また、実施形態における文字含有ブロック判定部1101は、着目MCUブロックが文字含有ブロックでない場合、その直前のMCUブロックが文字含有ブロックであるか否かを判定する。そして、文字含有ブロック判定部1101はその判定結果を出力する。この判定結果は3値(2ビットあれば十分)であり、着目MCUが文字含有ブロックである場合には“0”を判定結果とする。また、着目MCUが文字含有ブロックでなく、その直前のブロックが文字含有ブロックである場合には“1”を判定結果とする。そして、着目ブロックもその直前のブロックも共に文字含有ブロックでない場合には“2”を判定結果とする。
DC差分修正部1102は、文字含有ブロック判定部1101の判定結果が“1”の場合に処理を実行する。具体的には、先ず、ブロック情報保持部1004から着目するMCUブロックの各成分のDC係数量子化値(図13のD0(i),D1(i),D2(i))を取得する。更に、ブロックデータ用バッファ1015に格納されている直前のブロックのDC係数量子化値を取り出し、この2つからDC差分値を求めて符号化し、DC差分に対する符号を得る。続いて、DC差分修正部1102は、ブロック符号化データ取得部1012から着目するブロックのMCU符号化データを読み出し、ハフマン符号を解釈して、各成分のDC差分に対する符号を、先に求めたDC差分値に対する符号に置き換えて、セレクタ1103に出力する。ここで利用する量子化マトリックス、ハフマンテーブルはJPEG符号化部1001、JPEG復号部1003、ブロック再符号化部1021と共通のものとする。
図21に、DC差分修正部1102により、DC差分に対する符号化データのみが修正された符号化データが形成される様子を示す。なお、本実施の形態では、DC差分修正部1102の中でハフマン符号を解釈して、DC差分値に対する符号を探し出すようにしている。しかし、別の実施形態として、復号時に、ブロック情報保持部に、中間データにおける各成分のDC差分値符号化データの符号長、AC係数符号化データの符号長を記録させておいても良い。この場合、DC差分修正部1102は、これらの情報からDC差分符号化データの位置と長さを特定して、置き換えるようにすることもできる。
セレクタ1103は文字含有ブロック判定部1101から出力される判定結果と、領域拡大部1011から得られる拡大テキスト領域の情報を参照し、ブロック再符号化部1021、ブロック符号化データ取得部1012、DC差分修正部1102のいずれか1つから着目MCUブロックに対する符号化データを取得し、符号列形成部1018へと出力する。以下に、その詳細を説明する。
セレクタ1013は領域拡大部1011から出力される拡大テキスト領域ERiの情報を参照して、着目するMCUブロックがERiの内部か否かを判定する。ERiの外部である場合には、第1の実施形態と同様に、ブロック符号化データ取得部1012により抽出されるMCU符号化データを符号列形成部1018へと出力する。
一方、ERiの内部である場合は、第1の実施形態と異なり、文字含有ブロック判定部1101から出力される判定結果によって動作が変わる。文字含有ブロック判定部1101の判定結果が“0”の場合、即ち、着目するMCUブロックが文字含有ブロックである場合、セレクタ1013は、ブロック再符号化部1021から出力される着目MCUの符号化データを出力する。また、文字含有ブロック判定部1101の判定結果が“1”の場合、即ち、着目するMCUブロックは文字含有ブロックでないが、その直前のブロックが文字含有ブロックである場合、DC差分修正部1102から符号化データを取得して出力する。また、判定結果が“2”の場合、即ち、着目ブロックもその直前のブロックも共に文字含有ブロックでない場合にはブロック符号化データ取得部1012からの符号化データを出力する。
なお、ブロック再符号化部1021からの符号化データを選択しない場合は、ブロック再符号化部1021を動作させる必要はない。先に説明した第1の実施形態では、拡大テキスト領域の左隣に位置するブロックについて、DC係数量子化値を得る目的で動作させ、符号化データを破棄していた。本第2の実施の形態では、ブロック再符号化部1021の動作開始時に必要となる直前のブロックのDC係数量子化値をブロック情報保持部1004から得ることができるため、このようなダミー動作は不要となる。
以上説明したように本第2の実施形態によれば、文字画像データと背景画像データに分離してそれぞれに適した符号化を行う適応的符号化において、一時的に格納した中間データの活用により背景画像符号化データ取得のためのブロック再符号化処理を削減できる。特に、テキスト領域の内部でも符号化データを活用することによって、再符号化の対象となるブロック数をより少なくすることができる。
[第2の実施形態の変形例]
次に、上記第2の実施形態の処理をコンピュータプログラムで実現する例を説明する。装置構成は、第1の実施形態の変形例と同じ図12の構成で構わないので、その説明は省略する。そこで、以下では、同図における外部記憶装置1407に記憶されたアプリケーションプログラムをCPU1401が実行する処理手順を図15のフローチャートに従って説明する。基本的に、このプログラムは、図11に示す構成要素に対応する関数(サブルーチン)で構成されると考えると分かりやすい。ただし、図11におけるバッファ1005、ブロック情報保持部1004、文字画像データ用バッファ1008はRAM1402内に予め確保することになる。また、中間データ格納部1002は外部記憶装置1407内に確保する。
CPU1401が実行する画像処理用のアプリケーションプログラムの全体の処理の流れは第1の実施の形態で説明した図9のフローと同様である。但し、上記第2の実施形態で説明した通り、中間符号化データの復号時、即ち、図9のステップS902においては図13に示した構成のブロック情報を記録する。この他、本第2の実施の形態の変形例では、背景画像データの符号化を行うステップS908の処理の内容が異なる。
このステップS908の詳細を示すのが図15のフローチャートである。以下、図15のフローチャートに従って、背景画像データの符号化処理の流れを説明する。
ステップS1501ではMCUの識別番号を表す変数iの初期値として0を設定する。
ステップS1502では着目するMCU(i)が拡大テキスト領域ERiのいずれかの内部にあるか否かを判断する。拡大テキスト領域内である場合には処理をステップS1505に移し、そうでない場合にはステップS1503へと移す。
ステップS1503ではRAM1402内に格納したブロック情報から、着目するMCUブロックの符号位置p(i)と符号長cl(i)を読み出す。
続いて、ステップS1504では外部記憶装置1407に格納される中間符号化データのp(i)ビット目からcl(i)ビットを取り出して着目するMCUブロックの符号として出力する。
ステップS1503とステップS1504の処理はブロック符号化データ取得部1012での処理に相当する。
ステップS1505では、着目するMCUブロック内に文字を構成する画素を含んだ文字含有ブロックであるか否を判断し、更に、文字含有ブロックでない場合、その直前のMCUブロックが文字含有ブロックであるか否かを確認し、3値の判定結果を出力する(文字含有ブロック判定部1101の処理に相当)。
ステップS1506ではステップS1505で得られた判定結果に基づいて、処理を切り替える。判定結果が“0”である場合にはステップS1507へ、“1”である場合にはステップS1509へ、また、“2”である場合にはステップS1503へと処理を移す。
ステップS1507では、RAM1402内に格納される中間データの復号画像から着目するブロックの画素データを読み出す。
ステップS1508では、ステップS1507により読み出したブロックの画素データに対して、離散コサイン変換、量子化、ハフマン符号化を適用し、MCU符号化データを生成する。
ステップS1509では、各成分に対して、RAM1402内に格納される直前のブロックのDC係数量子化値と、同じくRAM1402内に格納されるブロック情報から着目するブロックのDC係数量子化値を取得し、DC差分を求めて符号化する。
ステップS1510では、RAM1402内に格納したブロック情報から、着目するMCUブロックの符号位置p(i)と符号長cl(i)を読み出す。
続いて、ステップS1511では外部記憶装置1407に格納される中間データのp(i)ビット目からcl(i)ビットを取り出す。
ステップS1512では、ステップS1511で取り出したMCU符号化データを解釈し、各成分のDC差分に対する符号化データの位置と長さを特定し、これをステップS1509で得たDC差分符号化データに置き換えて出力する。
上記のステップS1509、S1510,S1511,S1512の処理はDC差分修正部1102の処理に相当する。
ステップS1010では、処理対象のMCUを次のMCUへと移すため、変数iに1を加えて更新する。
ステップS1513では、全てのMCUブロックについて処理が終了したか否かを判断し、未処理のMCUブロックが残っている場合にはステップS1502に戻り、処理を継続する。全てのMCUブロックの処理が終了した場合には符号化処理を終了する。
以上説明したように本変形例によっても、第2の実施形態と同様の作用効果を奏することが可能となるのは明らかであろう。すなわち、文字画像データと背景画像データに分離してそれぞれに適した符号化を行う適応的符号化において、一時的に格納した中間データの活用により背景画像符号化データ取得のためのブロック再符号化処理を削減できる。特に、テキスト領域の内部でも符号化データを活用することによって、再符号化の対象となるブロック数をより少なくすることができる。
なお、上記処理の順番はここで説明したフローに限定されるものではない。例えば、図15のステップS1509のDC差分の生成処理は、ステップS1512で行うDC差分を修正した符号化データの生成よりも前に行われていれば良く、ステップS1510、ステップS1511と並行して行ったり、順番を入れ替えても構わない。本変形例では、中間符号化データを外部記憶装置1407に格納するものとして説明したが、RAM1402に領域を確保して保持しても構わない。
[第3の実施形態]
上記第1、第2の実施形態の画像処理装置では、背景画像データの保持する解像度は、前景、および、中間データで保持する解像度と同じであった。しかしながら、前景、背景分離符号化においては、前景と背景の解像度を変えて符号化することもできる。本発明の第3の実施形態は、相対的に視覚劣化が目につきにくい背景部分(低周波成分が主である画像)の解像度を落とすことで、更に高い圧縮性能を得る例を説明する。
図16は、本第3の実施形態に係る画像処理装置のブロック構成図である。第1、第2の実施形態で説明した図1、図11と同じ機能のブロックについては同じ番号を付した。
図16の構成で、第2の実施形態の図11と異なる点は、3入力1出力のセレクタ1103に変えて、4入力1出力のセレクタ1604を設けた点、DCT係数復号部1601、AC係数マスク部1602、ハフマン符号化部1603で構成される高周波成分マスク再符号化部1605を追加した点である。これ以外の構成要素は、第2の実施形態と同様であるので、その説明は省略する。
本第3の実施形態における画像符号化処理は次の通りである。
高周波成分マスク再符号化部1605は着目するMCUブロックについて、着目するMCU符号化データをブロック符号化データ取得部1012から取り出し、高周波成分の一部の量子化係数値を0にマスクし、符号化データを再生成して出力する。
以下、低解像度再符号化部1605内の各ブロックについて説明する。
DCT係数復号部1601は、ハフマン符号化データを復号して、各成分について量子化された係数値のマトリクスを復元する(画像データにまで復号しない点に注意されたい)。なお、DC係数については差分値のまま保持する。
AC係数マスク部1602は、復元された8×8個の係数量子化値について、図14に示す左上の4×4個の領域はそのままに、それ以外の斜線で示した周波数帯域の値を0に置き換えることにより、実質的な解像度を水平、垂直とも1/2にする。
ハフマン符号化部1603はAC係数マスク部1602でマスクされた係数量子化値のマトリクスを再度ハフマン符号化(再エントロピー符号化)し、MCU符号化データを生成して出力する。
なお、高周波成分マスク再符号化部1605の中では、必ずしも、ACの各係数を復元する必要はない。例えば、高周波成分マスク再符号化部1605の別の構成として、着目ブロックのMCU符号化データを解釈して、図17の星印の位置の係数に対する符号までを残し、それ以降の符号化データをEOBコードで置き換えるようにしても同様の効果を得ることができる。この場合、斜線で示した帯域の係数情報も一部、MCU符号化データに含まれる。
セレクタ1604は、文字含有ブロック判定部1101から出力される判定結果と、領域拡大部1011から得られる拡大テキスト領域の情報を参照する。そして、セレクタ1604は、ブロック再符号化部1021、ブロック符号化データ取得部1012、DC差分修正部1102、高周波成分マスク再符号化部1605のいずれかから、着目MCUブロックに対する符号化データを取得し、符号列形成部1018へと出力する。このセレクタ1604の具体的な選択にかかる処理は次の通りである。
セレクタ1604は領域拡大部1011から出力される拡大テキスト領域ERiの情報を参照して着目するMCUブロックがERiの内部か否かを判定する。着目するMCUブロックが、ERiの外部に位置する場合、セレクタ1604は高周波成分マスク再符号化部1605からの符号化データを選択し、出力する。高周波成分マスク再符号化部1605は、ブロック符号化データ取得部1012から抽出されるMCU符号化データを使って、高周波成分マスク再符号化部1605で処理しているので、このときセレクタから出力されるMCUの符号化データは、実質的に解像度がオリジナルの1/2の符号化データとなる。
一方、ERiの内部である場合は、第2の実施形態と同じく、文字含有ブロック判定部1101の判定結果によって動作が決まる。判定結果に応じた出力の選択方法は第2の実施形態と同じであるので、ここでは説明を省略する。
以上説明したように本第3の実施形態によれば、文字画像データと背景画像データに分離してそれぞれに適した符号化を行う適応的符号化において、一時的に格納した中間データの活用により背景画像符号化データ取得のためのブロック再符号化処理を削減できる。特に、テキスト領域の内部でも符号化データを活用することによって、再符号化の対象となるブロック数をより少なくすることができる。また、特に、本実施形態においては、中間データの高周波成分にあたるデータを破棄することで背景画像の解像度を落としている。これにより、簡易に、かつ、できるだけ視覚的な画質劣化を少なくして、符号量を削減する効果がある。
<第3の実施形態の変形例>
次に、上記第3の実施形態の処理をコンピュータプログラムで実現する例を説明する。装置構成は、第1の実施形態の変形例と同じ図12の構成で構わないので、その説明は省略する。そこで、以下では、同図における外部記憶装置1407に記憶されたアプリケーションプログラムをCPU1401が実行する処理手順を図18のフローチャートに従って説明する。基本的に、このプログラムは、図16に示す構成要素に対応する関数(サブルーチン)で構成されると考えると分かりやすい。ただし、図16におけるバッファ1005、ブロック情報保持部1004、文字画像データ用バッファ1008はRAM1402内に予め確保することになる。また、中間データ格納部1002は外部記憶装置1407内に確保する。
CPU1401が実行する画像処理用のアプリケーションプログラムの全体の処理の流れは第1の実施の形態で説明した図9のフローと同様である。但し、上記第2の実施形態で説明した通り、中間符号化データの復号時、即ち、図9のステップ902においては図13に示した構成のブロック情報を記録する。この他、本第3の実施の形態では、背景画像データの符号化を行うステップS908の処理の内容が異なる。
図18のフローチャートに従って、背景画像データの符号化処理の流れを説明する。図18のフローチャートの大部分は第2の実施形態の変形例で説明した図15のフローチャートと同じである。図15と共通する処理ステップについては同じ番号を用い、説明を省略する。
図15と異なるのは、着目するMCUブロックが拡大テキスト領域の外部にある場合の処理である。
ステップS1801では、RAM1402内に格納したブロック情報から、着目するMCUブロックの符号位置p(i)と符号長cl(i)を読み出す。
続いて、ステップS1802では外部記憶装置1407に格納される中間データのp(i)ビット目からcl(i)ビットを取り出して着目するMCUブロックの符号を取り出す。
上記のステップS1801、S1802の処理はブロック符号化データ取得部1012の処理に相当する。
ステップS1803では、ステップS1802で取り出したMCU符号化データを復号してDCT係数量子化値を復元する。なお、DC係数量子化値については差分のまま保持する(DCT係数復号部1601の処理に相当)。
ステップS1804では、着目ブロックの各成分について8×8個の係数量子化値について、図14の斜線部にあたる高周波成分を0にマスクする(AC係数マスク部1602の処理に相当)。
ステップS1805では、ステップS1804で処理した係数量子化値のマトリクスを再度ハフマン符号化し、MCU符号化データを生成して出力する(ハフマン符号化部1603の処理に相当)。
上記以外の処理は、第2の実施形態の変形例と同様である。
以上説明したように、本変形例によっても、第3の実施形態と同様の作用効果を奏することが可能となるのは明らかであろう。すなわち、文字画像データと背景画像データに分離してそれぞれに適した符号化を行う適応的符号化において、一時的に格納した中間データの活用により背景画像符号化データ取得のためのブロック再符号化処理を削減できる。特に、テキスト領域の内部でも符号化データを活用することによって、再符号化の対象となるブロック数をより少なくすることができる。また、特に、本実施形態においては、中間データの高周波成分にあたるデータを破棄することで背景画像の解像度を落としている。これにより、簡易に、かつ、できるだけ視覚的な画質劣化を少なくして、符号量を削減する効果がある。
[第4の実施形態]
上記第3の実施形態の画像処理装置では、拡大テキスト領域外の背景画像データの解像度を1/2に落とすことで高い圧縮性能を得ることを狙った実装方法を示した。拡大テキスト領域の内部では、背景画像でも高解像度を保持したのは、文字画素判定の誤りの影響を考慮したためである。本来、文字を構成する画素として判断すべき画素が、背景画素と判断された場合、解像度を1/2とすることで、前景文字との画質の差が大きくなり、人間の目についてしまう恐れがある。しかしながら、拡大テキスト領域内の全てのブロックで高解像度保持する必要はなく、文字を含んでいると考えられる部分のみ、オリジナルの解像度で保持しておけば良い。そこで、本第4の実施形態では、拡大領域内部の背景画像の符号化において、適応的に解像度を変える例を説明する。
図19は、本第4の実施形態に係る画像処理装置のブロック構成図である。第1、第2、第3の実施形態で説明した図1、図11、図16と同じ機能のブロックについては同じ番号を付した。
図19の構成で、第3の実施形態の図16と異なる点は、DC係数修正部1102とブロック再符号化部1021を統合した形で、適応解像度再符号化部1907を構成した点と、4入力1出力のセレクタ1604に変えて、2入力1出力のセレクタ1906を用いた点である。更に、領域拡大部1011に変えて若干動作が異なる領域拡大部1908を用いている。これ以外のブロックは第3の実施形態と同様であるので、その説明は省略する。
本第4の実施形態における画像符号化処理は次の通りである。
領域拡大部1908はテキスト領域判別部1006から出力されるテキスト領域TRiについて、その範囲を広げた拡大テキスト領域ERiを生成する。
本第4の実施の形態においては、拡大テキスト領域ERiは、テキスト領域TRiを含むMCUブロックの集まりを、その上下左右に1ブロック分拡大した領域である。
適応解像度再符号化部1907は、バッファ1005に格納される着目ブロックの背景画像データ、あるいは、ブロック符号化データ取得部1012から得られる着目ブロックのMCU符号化データのいずれかから、着目ブロックの符号化データを生成する。
適応解像度再符号化部1907は、離散コサイン変換部1013、係数量子化部1014、DCT係数復号部1902、セレクタ1903、特徴解析部1901、AC係数マスク部1904、セレクタ1905、ハフマン符号化部1016から構成される。
以下、適応解像度再符号化部1907内の各ブロックについて説明する。
離散コサイン変換部1013はバッファ1005から着目するMCUブロックの画素データを取り出し、各成分について、離散コサイン変換を適用して、8×8個の係数マトリクスを生成する。
係数量子化部1014は各係数を係数位置に応じた量子化ステップ値を用いて量子化し、量子化された係数のマトリクスをセレクタ1903へと出力する。
一方、DCT係数復号部1902は、ブロック符号化データ取得部により得られたMCU符号化データについて、ハフマン符号を復号して、各成分について量子化された係数値のマトリクスを復元する。なお、DC係数については差分値のまま保持する。
セレクタ1903は文字含有ブロック判定部の出力する判定結果により、第1の処理手段として機能する係数量子化部1014、第2の処理手段として機能するDCT係数復号部1902のいずれか一方の出力をブロックデータ用バッファ1015へと書き込む。判定結果が“0”である場合には、係数量子化部1014からの出力を選択し、“1”または“2”である場合にはDCT係数復号部1902からの出力を選択する。
特徴解析部1901はブロックデータ用バッファ1015に格納される8×8の量子化されたDCT係数マトリクスについて、高周波成分を多く有するか否かを判定する。この判定は、高周波成分の絶対値の合計値と予め設定された閾値とを比較することで判定するものとする(閾値を超えれば高周波成分が多い、閾値以下の場合には高周波成分が少ないとする)。高周波成分を多く有する場合には“0”、そうでない場合には“1”を判定結果としてセレクタ1905に出力する。
AC係数マスク部1904は、ブロックデータ用バッファ1015に格納される8×8個の係数量子化値について、図14に斜線で示した周波数帯域の値を0に置き換えることにより、実質的な解像度を1/2にする。
セレクタ1905は特徴解析部1901の特徴判定結果に応じてAC係数マスク部1904によりマスク処理された係数量子化マトリクスと、ブロックデータ用バッファ1015に格納される係数量子化マトリクスのいずれか一方を選択してハフマン符号化部1016へと出力する。具体的には、特徴解析部1901の判定結果が“0”である場合、セレクタ1905はブロックデータ用バッファ1015からの係数量子化マトリクスを選択し、“1”である場合にはAC係数マスク部1904からの係数量子化マトリクスを選択し、ハフマン符号化部1016に出力する。
ハフマン符号化部1016はセレクタ1905を介して入力される係数量子化値のマトリクスを再度ハフマン符号化し、MCUの符号化データを生成して出力する。なお、対象となる係数量子化値のマトリクスが、離散コサイン変換部1013、係数量子化部1014を経てブロックデータ用バッファ1015に格納されている場合には、ブロック情報保持部1004に格納される直前のブロックを参照してDC差分値を求める必要がある。DCT係数復号部1902から得られた場合にはDC差分値として保持しているので、この必要はない。
セレクタ1906は、領域拡大部1011から得られる拡大テキスト領域の情報を参照し、適応解像度再符号化部1907、高周波成分マスク再符号化部1605のいずれかから着目MCUブロックに対する符号化データを取得する。そして、セレクタ1906は、取得した符号化データを、符号列形成部1018へと出力する。具体的には次の通りである。
セレクタ1906は領域拡大部1011から出力される拡大テキスト領域ERiの情報を参照して、着目するMCUブロックがERiの内部か否かを判定する。着目するMCUブロックERiの外部である場合には、高周波成分マスク再符号化部1605からのMCUの符号化データを選択し、符号列形成部1018に出力する。高周波成分マスク再符号化部1605は、ブロック符号化データ取得部1012により抽出されるMCU符号化データを使って、高周波成分マスク再符号化部1605で処理しているので、選択出力される符号化データは、実質的に解像度がオリジナルの1/2になった符号化データとなる。
一方、着目MCUがERiの内部である場合は、第2の実施形態と同じく、文字含有ブロック判定部1101の判定結果によって動作が決まる。判定結果に応じた出力の選択方法は第2の実施形態と同じであるので、ここでは説明を省略する。
以上説明したように本第4の実施形態によれば、文字画像データと背景画像データに分離してそれぞれに適した符号化を行う適応的符号化において、一時的に格納した中間データの活用により背景画像符号化データ取得のためのブロック再符号化処理を軽減できる。特に、本実施形態においては、背景画像のうち、拡大テキスト領域内で、かつ、高周波成分を有するブロックのみ高解像度を保持し、それ以外は解像度を落としている。これにより、簡易に、かつ、できるだけ視覚的な画質劣化を少なくして、符号量を削減する効果がある。これは、前景、背景分離の誤判定による、文字部分の視覚的な画質差の発生を抑制する効果が期待できる。
[第4の実施形態の変形例]
次に、上記第4の実施形態の処理をコンピュータプログラムで実現する例を第4の実施形態の変形例として説明する。装置構成は、第1の実施形態の変形例と同じ図12の構成で構わないので、その説明は省略する。そこで、以下では、同図における外部記憶装置1407に記憶されたアプリケーションプログラムをCPU1401が実行する処理手順を図20のフローチャートに従って説明する。基本的に、このプログラムは、図19に示す構成要素に対応する関数(サブルーチン)で構成されると考えると分かりやすい。ただし、図19におけるバッファ1005、ブロック情報保持部1004、文字画像データ用バッファ1008、ブロックデータ用バッファ1015はRAM1402内に予め確保することになる。また、中間データ格納部1002は外部記憶装置1407内に確保する。

CPU1401が実行する画像処理用のアプリケーションプログラムの全体の処理の流れは第1の実施の形態で説明した図9のフローと同様である。但し、上記第2の実施形態で説明した通り、中間符号化データの復号時、即ち、図9のステップS902においては図13に示した構成のブロック情報を記録する。この他、本第4の実施の形態の変形例では、背景画像データの符号化を行うステップS908の処理の内容が異なる。
図20のフローチャートは、ステップS908の詳細である。以下、図20に従って、背景画像データの符号化処理の流れを説明する。図20のフローチャートの大部分は第3の実施形態の変形例で説明した図18のフローチャートと同じである。図18と共通する処理ステップについては同じ番号を用い、説明を省略する。
図18と異なるのは、着目するMCUブロックが拡大テキスト領域の内部にある場合の処理である。
着目するMCUブロックが拡大テキスト領域の内部にある場合、ステップ1505、S1506で文字含有ブロックの判定を行い、その判定結果が“0”である場合にはステップS2001へ、“1”または“2”である場合にはステップS2004へと処理を移す。
ステップS2001ではバッファ105から着目するブロックの画素データを読み出す。続いてステップS2002では、読み出したMCUブロックの各成分に対して離散コサイン変換を施し、DCT係数のマトリクスを生成する。
上記ステップS2001、ステップS2002の処理は離散コサイン変換部1013の処理に相当する。
ステップS2003では、ステップS2002で得られた係数マトリクスに対して量子化を行い、量子化された係数マトリクスを生成する(係数量子化部1014の処理に相当)。
一方、判定結果が“1”または“2”である場合、ステップS2004に処理を進める。このステップS2004では、ブロック情報保持部1004(RAM1402)内に格納したブロック情報から、着目するMCUブロックの符号位置p(i)と符号長cl(i)を読み出す。
続いて、ステップS2005では中間データ格納部1002(外部記憶装置1407)に格納される中間データのp(i)ビット目からcl(i)ビットを取り出して着目するMCUブロックの符号を取り出す。
上記ステップS2004、S2005の処理はブロック符号化データ取得部1012の処理に相当する。
更に、ステップS2006ではステップS2005で取り出したMCUブロック符号化データを復号して、量子化された係数値を復元する。なお、DC係数量子化値については差分のまま保持する(DCT係数復号部1902の処理に相当)。
ステップS2007では、ステップS2003、または、ステップS2006で得られた量子化された係数値のマトリクスを参照して、高周波成分が多く含まれているか否かを判定する(特徴解析部1901の処理に相当)。
高周波成分を多く含んだブロックの場合にはステップS2009へと処理を移し、そうでない場合にはステップS2009をスキップしてステップS2010へと処理を移す。
ステップS2009では、着目ブロックの各成分について8×8の係数量子化値について、図14の斜線部にあたる高周波成分を0にマスクする(AC係数マスク部1904の処理に相当)。
ステップS2010では、係数量子化値のマトリクスを再度ハフマン符号化し、MCU符号化データを生成して出力する(ハフマン符号化部1016の処理に相当)。
上記以外の処理は、第3の実施形態の変形例と同様である。
以上説明したように、本第4の変形例によっても、第4の実施形態と同様の作用効果を奏することが可能となるのは明らかであろう。すなわち、文字画像データと背景画像データに分離してそれぞれに適した符号化を行う適応的符号化において、一時的に格納した中間データの活用により背景画像符号化データ取得のためのブロック再符号化処理を軽減できる。特に、本実施形態においては、背景画像のうち、拡大テキスト領域内で、かつ、高周波成分を有するブロックのみ高解像度を保持し、それ以外は解像度を落としている。これにより、簡易に、かつ、できるだけ視覚的な画質劣化を少なくして、符号量を削減する効果がある。これは、前景、背景分離の誤判定による、文字部分の視覚的な画質差の発生を抑制する効果が期待できる。
[他の実施形態]
上記実施形態では、中間符号化データ、および、背景画像データの符号化にはJPEGを用いる例について示した。色変換、サブサンプリングを実施した場合にも本発明が適用可能であることは容易に理解できよう。但し、MCUを構成する8×8画素のブロック数を多くした場合には、DC差分の生成方法について考慮する必要がある。また、符号化方式についてもJPEGに限らず、所定のブロックを単位として区分できる符号を生成する手法であればJPEG以外の符号化方式を用いても構わない。例えば、ITU−T T.800|ISO/IEC15444−1として国際標準勧告されるJPEG2000 Part1などを用いても良い。この場合、所定の大きさのタイルに分割して符号化すれば、本発明の実施には好適である。
また、領域判別の方法、前景画像データの分離方法、あるいは前景画像データの符号化方法についても、上述の実施形態での説明に限定されるものではない。例えば、第1から第4の実施形態では、前景画像をMMRを用いて2値として符号化する例について説明したが、JBIGやJBIG−2など他の2値符号化技術を適用しても構わない。また、前景画像の輪郭を抽出し、ベクトル化する手法と組み合わせても構わない。更に、前景を2値画像として符号化する手法だけでなく、限定色画像として符号化したり、多値として符号化する方法と組み合わせても構わない。具体的な例としては、MRC(ITU−T T.44)のように、多値の前景と背景、それを選択するためのマスクという3層を構成して符号化する方法においても、中間データの符号化方式と背景の符号化に同一の符号化方式を適用すれば、本発明の実施が可能である。別の例では、同じく前景を多値で符号化し、前景画素値のすくなくともいずれか一つに背景を表示することを指示する透過色を設定する方法においても同様である。
また、実施形態では、RGB画像の符号化を例に説明したが、画像の色空間は、CMYK、Lab、YCrCbなど様々なタイプの画像データに適用可能であるのは明らかであるので、上記実施形態で本発明が限定されるものではない。
また、上記実施形態では、コンピュータプログラムでもって実現する例を説明した。通常、コンピュータプログラムは、CD−ROM等のコンピュータ可読記憶媒体に格納されていて、それをコンピュータの読取り装置(CD−ROMドライブ等)にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、このようなコンピュータ可読記憶媒体も本発明の範疇に入ることも明らかである。
第1の実施形態に係る画像符号化装置のブロック構成図である。 ブロック情報のフォーマットを示す図である。 文字、写真の混在画像の一例を示す図である。 テキスト領域の例を示す図である。 文字画像データの例を示す図である。 穴埋め処理によって生成される背景画像データの概略を示す図である。 テキスト領域TRiの拡大の様子を示す図である。 第1の実施形態において生成する最終符号化データの構造を示す図である。 第1の実施形態における変形例の符号化処理手順を示すフローチャートである。 第1の実施形態の変形例における背景画像の符号化処理手順を示すフローチャートである。 第2の実施形態に係る画像符号化装置のブロック構成図である。 第1の実施形態の変形例の情報処理装置のブロック構成図である。 第2の実施形態におけるブロック情報のフォーマットを示す図である。 8×8のDCT係数に対するマスク処理対象領域を示す図である。 第2の実施形態の変形例における背景画像の符号化処理手順を示すフローチャートである。 第3の実施形態に係る画像符号化装置装置のブロック構成図である。 8×8のDCT係数に対する他のマスク処理対象領域を示す図である。 第3の実施形態の変形例における背景画像の符号化処理手順を示すフローチャートである。 第4の実施形態に係る画像符号化装置のブロック構成図である。 第4の実施形態の変形例における背景画像の符号化処理手順を示すフローチャートである。 DC差分を修正してMCU符号化データを生成する処理を説明するための図である。

Claims (11)

  1. 複数の画素で構成される画素ブロックを単位に符号化された画像データを入力し、再符号化する画像符号化装置であって、
    再符号化対象の符号化画像データを中間データとして格納する中間データ格納手段と、
    該中間データ格納手段に格納された中間データを前記ブロック単位に復号し、復号した画像データをバッファに格納する復号手段と、
    前記バッファに格納された画像データを解析し、文字線画を包含する前景画像領域を判別する判別手段と、
    該判別手段で判別された前記前景画像領域の内部の画像データの個々の画素が、文字線画を構成する文字線画画素であるか、非文字線画画素であるかを識別して、識別情報を生成する識別手段と、
    該識別手段で得られた識別情報を符号化し、出力する第1の符号化手段と、
    前記前景画像領域の内部の前記文字線画画素の値を、周囲の非文字線画画素の値に基づいて決定される置換値で置換する置換手段と、
    該置換手段による置換後の前記前景画像領域の内部の画像データから、前記ブロック単位に符号化データを生成し、出力する第2の符号化手段と、
    前記前景画像領域の外部については、前記中間データ格納手段に格納された各画素ブロックの符号化データを参照して、且つ、画素値まで復元することなしに、符号化データを生成し、出力する第3の符号化手段と
    を備えることを特徴とする画像符号化装置。
  2. 前記復号手段は、前記中間データ格納手段に格納された符号化画像データの着目画素ブロックの符号化データを復号する度に、前記着目画素ブロックの前記中間データ格納手段における所在位置を特定するブロック情報を抽出する抽出手段を含み、
    前記第3の符号化手段は、前記ブロック情報を参照することで、前記中間データ格納手段に格納された画素ブロックの符号化データを読出すことを特徴とする請求項1に記載の画像符号化装置。
  3. 前記識別手段は、前記前景画像領域の内部の各画素が、前記文字線画画素、前記非文字線画画素のいずれであるかを示す2値の情報を生成することを特徴とする請求項1に記載の画像符号化装置。
  4. 前記第1の符号化手段は、符号化データに加えて、前記前景画像領域の内部の文字線画画素の色情報を出力することを特徴とする請求項1乃至3のいずれか1項に記載の画像符号化装置。
  5. 前記第3の符号化手段は、前記中間データ格納手段に格納された画素ブロックの符号化データをそのまま出力することを特徴とする請求項1乃至4のいずれか1項に記載の画像符号化装置。
  6. 前記再符号化対象の画像データは、前記画素ブロックを単位に、離散コサイン変換、量子化、エントロピー符号化された画像データであり、
    前記第3の符号化手段は、前記中間データ格納手段に格納された画素ブロックの符号化データを量子化係数値まで復号し、高周波成分における予め設定された領域内の成分値を“0”でマスクし、再エントロピー符号化する手段を有する
    ことを特徴とする請求項1乃至4のいずれか1項に記載の画像符号化装置。
  7. 更に、前記識別手段で生成された識別情報を参照することで、前記前景画像領域の内部の着目画素ブロックが、前記文字線画画素を含むか否かを判定するブロック判定手段と、
    前記着目画素ブロックが前記前景画像領域の内部に位置し、且つ、前記ブロック判定手段で前記着目ブロックが前記文字線画画素を含むと判定された場合、前記第2の符号化手段で生成された符号化データを選択して出力し、
    前記着目画素ブロックが前記前景画像領域の内部に位置し、且つ、前記ブロック判定手段で前記着目ブロックが前記文字線画画素を含まないと判定された場合、前記第3の符号化手段で生成された符号化データを選択して出力し、
    前記着目画素ブロックが前記前景画像領域の外部に位置する場合、前記第3の符号化手段で生成された符号化データを選択して出力する選択手段と
    を備えることを特徴とする請求項1乃至6のいずれか1項に記載の画像符号化装置。
  8. 前記再符号化対象の画像データは、前記画素ブロックを単位に、離散コサイン変換、量子化、エントロピー符号化された画像データであり、
    更に、前記識別手段で生成された識別情報を参照することで、前記前景画像領域の内部の着目画素ブロックが、前記文字線画画素を含むか否かを判定するブロック判定手段を備え、
    前記第2の符号化手段は、
    前記バッファから着目画素ブロックの画像データを読み込み、離散コサイン変換、量子化を行い、量子化係数値を算出する第1の処理手段と、
    前記中間データ格納手段から着目画素ブロックに対応する符号化データを読み込み、量子化係数値まで復号する第2の処理手段と、
    前記ブロック判定手段で、前記着目画素ブロックが文字線画画素を含むと判定された場合、前記第1の処理手段で生成された量子化係数値を選択し、前記着目画素ブロックが文字線画画素を含まないと判定された場合、前記第2の処理手段で生成された量子化係数値を選択する選択手段と、
    該選択手段で選択した量子化係数値における高周波成分の量が予め設定された閾値より多いか少ないかを判定する判定手段と、
    該判定手段で、量子化係数値における高周波成分の量が前記閾値以下と判定した場合、前記選択手段で選択した量子化係数値における予め設定された領域内の成分値を“0”でマスクするマスク手段と、
    前記判定手段で、量子化係数値における高周波成分の量が前記閾値よりも多いと判定された場合には、前記選択手段で選択した量子化係数値をエントロピー符号化し、
    前記判定手段で、量子化係数値における高周波成分の量が前記閾値以下と判定された場合には前記マスク手段でマスク処理した後の量子化係数値をエントロピー符号化するエントロピー符号化手段と
    を含むことを特徴とする請求項1乃至6のいずれか1項に記載の画像符号化装置。
  9. 複数の画素で構成される画素ブロックを単位に符号化された画像データを入力し、再符号化する画像符号化装置の制御方法であって、
    再符号化対象の符号化画像データを中間データとして記憶手段に格納する格納工程と、
    該記憶手段に格納された中間データを前記ブロック単位に復号し、復号した画像データをバッファに格納する復号工程と、
    前記バッファに格納された画像データを解析し、文字線画を包含する前景画像領域を判別する判別工程と、
    該判別工程で判別された前記前景画像領域の内部の画像データの個々の画素が、文字線画を構成する文字線画画素であるか、非文字線画画素であるかを識別して、識別情報を生成する識別工程と、
    該識別工程で得られた識別情報を符号化し、出力する第1の符号化工程と、
    前記前景画像領域の内部の前記文字線画画素の値を、周囲の非文字線画画素の値に基づいて決定される置換値で置換する置換工程と、
    該置換工程による置換後の前記前景画像領域の内部の画像データから、前記ブロック単位に符号化データを生成し、出力する第2の符号化工程と、
    前記前景画像領域の外部については、前記記憶手段に格納された各画素ブロックの符号化データを参照して、且つ、画素値まで復元することなしに、符号化データを生成し、出力する第3の符号化工程と
    を備えることを特徴とする画像符号化装置の制御方法。
  10. コンピュータが読み込み実行することで、前記コンピュータを、請求項1乃至8のいずれか1項に記載の画像符号化装置として機能させることを特徴とするコンピュータプログラム。
  11. 請求項10に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
JP2008037946A 2008-02-19 2008-02-19 画像符号化装置及びその制御方法 Expired - Fee Related JP4902569B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008037946A JP4902569B2 (ja) 2008-02-19 2008-02-19 画像符号化装置及びその制御方法
US12/364,863 US8452112B2 (en) 2008-02-19 2009-02-03 Image encoding apparatus and method of controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008037946A JP4902569B2 (ja) 2008-02-19 2008-02-19 画像符号化装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2009200642A JP2009200642A (ja) 2009-09-03
JP4902569B2 true JP4902569B2 (ja) 2012-03-21

Family

ID=40955192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008037946A Expired - Fee Related JP4902569B2 (ja) 2008-02-19 2008-02-19 画像符号化装置及びその制御方法

Country Status (2)

Country Link
US (1) US8452112B2 (ja)
JP (1) JP4902569B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402442B1 (ko) 2011-07-19 2014-06-03 후지쯔 가부시끼가이샤 이미지 처리 디바이스 및 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011244031A (ja) * 2010-05-14 2011-12-01 Fujifilm Corp 画像データ伸張装置および画像データ圧縮装置,ならびにそれらの動作制御方法
KR20110135786A (ko) * 2010-06-11 2011-12-19 삼성전자주식회사 깊이 전이 데이터를 이용한 3d 비디오 인코딩/디코딩 장치 및 방법
JP5893379B2 (ja) * 2011-12-13 2016-03-23 キヤノン株式会社 画像圧縮装置、画像圧縮方法、コンピュータプログラム
US10176761B2 (en) * 2017-02-23 2019-01-08 Synaptics Incorporated Compressed data transmission in panel display system
JP7271099B2 (ja) * 2018-07-19 2023-05-11 キヤノン株式会社 ファイルの生成装置およびファイルに基づく映像の生成装置
CN109492451B (zh) * 2018-10-30 2022-08-16 维沃移动通信有限公司 一种编码图像识别方法及移动终端
CN111918065A (zh) * 2019-05-08 2020-11-10 中兴通讯股份有限公司 一种信息压缩/解压缩方法及装置
JP2021044687A (ja) * 2019-09-11 2021-03-18 京セラドキュメントソリューションズ株式会社 画像処理装置、画像処理方法
CN112600564A (zh) * 2020-12-18 2021-04-02 上海集成电路研发中心有限公司 游程解码电路、控制方法、电子装置及可读存储介质
US11544943B1 (en) * 2022-05-31 2023-01-03 Intuit Inc. Entity extraction with encoder decoder machine learning model
US11861884B1 (en) * 2023-04-10 2024-01-02 Intuit, Inc. Systems and methods for training an information extraction transformer model architecture

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08129645A (ja) * 1994-10-31 1996-05-21 Toshiba Corp 画像処理装置および画像処理方法
JP3416034B2 (ja) * 1997-09-17 2003-06-16 沖電気工業株式会社 符号化信号処理装置
US6198850B1 (en) * 1998-06-12 2001-03-06 Xerox Corporation System and method for segmentation dependent lossy and lossless compression for higher quality
JP2000175048A (ja) * 1998-12-02 2000-06-23 Fuji Xerox Co Ltd 画像処理装置
US7426054B1 (en) * 1999-05-13 2008-09-16 Canon Kabushiki Kaisha Image processing apparatus, image reproduction apparatus, system, method and storage medium for image processing and image reproduction
JP2001016447A (ja) * 1999-06-30 2001-01-19 Minolta Co Ltd 画像処理装置および画像処理方法、ならびに画像処理プログラムを記録した記録媒体
US7133565B2 (en) * 2000-08-25 2006-11-07 Canon Kabushiki Kaisha Image processing apparatus and method
JP4366003B2 (ja) 2000-08-25 2009-11-18 キヤノン株式会社 画像処理装置及び画像処理方法
JP2003046789A (ja) * 2001-08-02 2003-02-14 Canon Inc 画像符号化装置及び画像復号化装置
JP3984817B2 (ja) * 2001-11-05 2007-10-03 キヤノン株式会社 画像処理装置およびその方法、媒体、プログラム
JP2003348361A (ja) * 2002-05-22 2003-12-05 Canon Inc 画像処理装置
JP4371632B2 (ja) * 2002-06-05 2009-11-25 キヤノン株式会社 画像記録装置及びその記録制御方法
JP2004193968A (ja) * 2002-12-11 2004-07-08 Ricoh Co Ltd カラー画像通信装置
JP4047192B2 (ja) * 2003-02-24 2008-02-13 キヤノン株式会社 画像圧縮装置及び方法、画像伸張装置及び方法、プログラム
EP1555804A3 (en) * 2004-01-19 2006-08-16 Ricoh Company, Ltd. Image processing apparatus, image processing program and storage medium
JP4732250B2 (ja) * 2006-06-14 2011-07-27 キヤノン株式会社 情報処理装置、制御方法、およびコンピュータプログラム
US7876959B2 (en) * 2006-09-06 2011-01-25 Sharp Laboratories Of America, Inc. Methods and systems for identifying text in digital images
US8041135B2 (en) * 2006-10-20 2011-10-18 Canon Kabushiki Kaisha Image encoding apparatus and control method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402442B1 (ko) 2011-07-19 2014-06-03 후지쯔 가부시끼가이샤 이미지 처리 디바이스 및 방법
US8907972B2 (en) 2011-07-19 2014-12-09 Fujitsu Limited Image processing device and method

Also Published As

Publication number Publication date
US8452112B2 (en) 2013-05-28
JP2009200642A (ja) 2009-09-03
US20090208125A1 (en) 2009-08-20

Similar Documents

Publication Publication Date Title
JP4902569B2 (ja) 画像符号化装置及びその制御方法
US8270716B2 (en) Selectively compressing picture and text areas of an image to maintain highest quality and effective compaction
US6275620B2 (en) Method and apparatus for pre-processing mixed raster content planes to improve the quality of a decompressed image and increase document compression ratios
US8331671B2 (en) Image processing apparatus and image encoding method related to non-photo image regions
US7912300B2 (en) Image processing apparatus and control method therefor
JP5132517B2 (ja) 画像処理装置および画像処理方法
US20080019613A1 (en) Information processing apparatus, method of controlling same and computer program
KR20120065394A (ko) 화상처리장치 및 그 처리 방법
US8295618B2 (en) Image processing apparatus, image processing method, and computer program product
EP0506482B1 (en) Image processing
US8406517B2 (en) Image processing apparatus and image processing method
JP5116650B2 (ja) 画像符号化装置及びその制御方法
US8810877B2 (en) Image processing apparatus, image processing method, and storage medium for eliminating blurring of scanned image
JP4649237B2 (ja) 画像圧縮装置、画像圧縮方法及び画像圧縮プログラム
JP4459287B2 (ja) 画像処理装置、画像処理方法
JP2008042683A (ja) 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US8463057B2 (en) Image encoding apparatus and control method therefor
Darwiche et al. Comparison of JPEG's competitors for document images
JP2008042681A (ja) 画像処理方法及び装置、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2000316174A (ja) カラー画像圧縮方法およびカラー画像圧縮装置
JP4795160B2 (ja) 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2002051221A (ja) 画像符号化装置、画像復号化装置、システム、及びその方法並びに記憶媒体
JP3327684B2 (ja) カラー画像処理方法及びその装置
JP4757172B2 (ja) 画像符号化装置及びその制御方法
JP4383187B2 (ja) 画像処理装置、画像処理用プログラム及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111125

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

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

R151 Written notification of patent or utility model registration

Ref document number: 4902569

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150113

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees