JP5247793B2 - 画像処理装置、画像処理方法、及びプログラム - Google Patents

画像処理装置、画像処理方法、及びプログラム Download PDF

Info

Publication number
JP5247793B2
JP5247793B2 JP2010285170A JP2010285170A JP5247793B2 JP 5247793 B2 JP5247793 B2 JP 5247793B2 JP 2010285170 A JP2010285170 A JP 2010285170A JP 2010285170 A JP2010285170 A JP 2010285170A JP 5247793 B2 JP5247793 B2 JP 5247793B2
Authority
JP
Japan
Prior art keywords
image
blocks
jpeg data
component
difference
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
JP2010285170A
Other languages
English (en)
Other versions
JP2012134776A (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 JP2010285170A priority Critical patent/JP5247793B2/ja
Priority to US13/303,113 priority patent/US20120154856A1/en
Priority to EP20110009310 priority patent/EP2469857A3/en
Priority to KR1020110133640A priority patent/KR20120070501A/ko
Publication of JP2012134776A publication Critical patent/JP2012134776A/ja
Application granted granted Critical
Publication of JP5247793B2 publication Critical patent/JP5247793B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • 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
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03GELECTROGRAPHY; ELECTROPHOTOGRAPHY; MAGNETOGRAPHY
    • G03G15/00Apparatus for electrographic processes using a charge pattern
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object

Description

本発明は画像データを作成する画像処理装置、画像処理方法、及びプログラムに関する。
画像圧縮のアルゴリズムとして、JPEGのベースライン規格がよく使われている。図8はRGBデジタル画像データをベースライン規格のJPEGデータに変換するために用いられるアルゴリズムのフローチャートである。
このフローチャートによると、ステップS101では、各画素のRGB画素値を、YCbCr(輝度・色差)データに変換する。ステップS102では、変換した輝度・色差データを、x×y画素(x,y=8或は16)のブロックに分割する。ステップS103ではステップS102で得られた各ブロックに対し、色差データに関しては、8×8画素になるように縮小処理を行う(サブサンプリング)。輝度データは元のブロックを1つまたは複数の8×8画素のブロックに分割する。このようにして得られた、輝度(1〜4個)、色差(1個×2成分)の8×8画素のブロックの組をMCU(Minimum Coded Unit:最小符号化ユニット)と呼ぶ。
さらに、ステップS104では、ステップS303で得られた8×8画素の各ブロックに対し離散コサイン変換(DCT演算)処理を行い、周波数成分に変換して8×8個の二次元係数値を得る。ステップS105では、得られた二次元係数の各値を、輝度・色差ごとに異なる量子化テーブルを用いて量子化する。ステップS106では、量子化後のデータを、DC成分とAC成分とに分けてハフマンコードに割り当てる符号化を行う。この際、DC成分に関しては一つ前のMCUまたはブロックのDC成分値との差分値を符号化する。AC成分に関しては、量子化後のデータ列において、量子化値とその前に続く“0”の数(ゼロラン)との組で符号を割り当てる。
そして、ステップS107では各ブロックで得られた符号データ列を、それぞれジグザグ順で輝度・色差の順に並べる。さらに、ステップS108ではステップS107における処理を各MCU単位で行い、最後にMCUごとの符号データ列を並べる。
JPEGデータを伸張してRGBデータに戻す場合は、図8に示すフローチャートの処理を逆にたどる。
ここで、ステップS106において、DC成分に関しては各色成分について一つ前のMCUでの値を参照している。このため、一般には任意位置のMCUからJPEGの伸張処理を開始することはできず、JPEGデータの先頭からMCU単位で順次伸張処理を行う必要がある。このように、JPEGデータは、上記のように、各MCUの各色成分のDC成分値について、以前のMCUでの値を参照している。このため、画像の一部を符号のままMCU単位で切り出したり、複数のJPEGデータを符号のまま接合して1枚のJPEGデータにまとめることは困難である。
ただし、JPEG規格によれば、JPEG符号化の処理時に、所定数のMCUごとに、MCU−MCU間にリスタートマーカという特殊なデータを挿入することで、その位置から伸張処理を行うことを可能にしていでる。リスタートマーカのある個所では、DC成分に関して前のMCUでの値を参照せず、差分でない本来の値を用いて符号化が行われる。このため、リスタートマーカの前でJPEGデータを符号のまま切断したり、リスタートマーカを用いて複数の(同じ大きさの)JPEGデータを接合することができる。例えば、特許文献1は、複数のJPEG画像に対し、おのおのの末尾のEOIマーカをリスタートマーカに書き換えてから結合し、1つのJPEG画像にまとめる方法を開示している。
特開2006−129295号公報
上述のように、リスタートマーカを用いると、比較的容易にJPEGデータの切断や接合を行うことができる。しかしながら、JPEG規格上、リスタートマーカは、1枚のJPEGデータ内では一定数のMCU毎にしか挿入することができず、任意の位置のMCU間に挿入することはできない。全MCU間に入れることは規格上可能だが、その場合はマーカによるサイズ増加が元の符号データ量に対して非常に大きくなってしまうという問題がある。
図9は従来例の課題を説明するための図である。
例えば、一度大きなJPEGデータを作成後、図9(a)に示す画像を図9(b)に示す画像のように、そこから任意の位置の画像データをMCU単位で切り出すような処理を行う場合を考える。ここで、図9(c)は元画像が48個(MCU1〜MCU48)のMCUを有し、切り出す画像が20個(MCU10〜14、18〜22、26〜30、34〜38)のMCUを有していることを示している。この場合、切り出し位置のMCU間にリスタートマーカが挿入されていなければ、いったんJPEGデータをすべて伸張して圧縮前の画像に戻し、その画像に対してMCU単位の切り出しの処理を実行後、切り出された画像を再圧縮するという処理が必要になる。
この処理を行うには、伸張および圧縮でハフマン復号化/符号化、DCT演算、量子化/逆量子化の処理が必要なため、長い処理時間や膨大な処理資源(ハードウェアなど)が必要である。加えて、再圧縮のために元のJPEGデータからの画質劣化も生じる。
また、特許文献1のように、同じ条件(サンプリング比、量子化係数)で圧縮された複数のJPEGデータを接合して1枚のJPEGデータを作成するようなニーズもあるが、その他のニーズもある。例えば、接合される複数のJPEGデータの大きさが異なる場合には、一般にはリスタートマーカとリスタートマーカの間のMCU数を一定にできないため、接合後のJPEGデータはJPEG規格を満足することができない。
この点を図10を参照して説明する。
例えば、図10(a)に示すようなMCU数が横3×縦4のJPEGデータと、図10(b)に示すようなMCU数が横5×縦4のJPEGデータを左右に接合する場合を考える。この場合、各画像の右端のMCUのデータの後にリスタートマーカーを挿入してあれば、特許文献1が開示する技術によりデータ的に接合することは可能である。しかしながら、図10(c)に示すような接合後の画像データはリスタートマーカ間のMCU数(リスタートインターバル)が一定でないためJPEG規格を満足しない。
本発明は上記従来例に鑑みてなされたもので、画像に対する合が実行された画像データを、簡単な処理で作成可能な画像処理装置、画像処理方法、及びプログラムを提供することを目的としている。
上記目的を達成するために本発明の画像処理装置は、次のような構成からなる。
即ち、複数のブロックに分割されている画像に対応し、当該複数のブロックのうちの連続する2つのブロックにおけるDC成分値の差分を含むJPEGデータを入力する入力手段と、前記入力手段により入力された2つの画像に対応するJPEGデータに基づいて、当該2つの画像の接合が実行されたときの接合画像において接合前の前記2つの画像の内の一方の画像のブロックと他方の画像のブロックとにより新たに連続することになる2つのブロックの組み合わせを特定する特定手段と、前記入力手段により入力された前記2つの画像に対応する前記JPEGデータに基づいて、前記特定手段により特定された前記新たに連続することになる2つのブロックの組み合わせにおけるDC成分値の差分を算出する算出手段と、前記算出手段により算出された差分が含まれている、前記接合画像に対応するJPEGデータを作成する作成手段とを有する。
また本発明を別の側面から見れば、複数のブロックに分割されている画像に対応し、当該複数のブロックのうちの連続する2つのブロックにおけるDC成分値の差分を含むJPEGデータを入力する入力工程と、前記入力工程において入力された2つの画像に対応するJPEGデータに基づいて、当該2つの画像の接合が実行されたときの接合画像において接合前の前記2つの画像の内の一方の画像のブロックと他方の画像のブロックとにより新たに連続することになる2つのブロックの組み合わせを特定する特定工程と、前記入力工程において入力された前記2つの画像に対応する前記JPEGデータに基づいて、前記特定工程において特定された前記新たに連続することになる2つのブロックの組み合わせにおけるDC成分値の差分を算出する算出工程と、前記算出工程において算出された差分が含まれている、前記接合画像に対応するJPEGデータを作成する作成工程とを有することを特徴とする画像処理方法を備える。
さらに本発明をさらに別の側面から見れば、上記画像処理方法の各工程をコンピュータに実行させるためのプログラムを備える。
従って本発明によれば、画像に対する合が実行された画像データを、簡単な処理で作成することができるという効果がある。
本発明の代表的な実施例であるマルチファンクションプリンタ(MFP)装置の概観斜視図である。 図1で示したMFP装置の上部に備え付けられた画像読取装置の断面図である。 画像読取装置の制御回路の構成を示すブロック図である。 入力JPEGデータからMCU単位で切り出し処理を行った際の各ハフマン符号語の状態変化について示す図である。 実施例1に従う画像処理部の構成を示すブロック図である。 実施例2において、2つのJPEGデータを左右接合する様子を示す図である。 実施例2に従う画像処理部の構成を示すブロック図である。 一般的なJPEG符号化処理を示すフローチャートである。 JPEG画像切り出し処理を示す図である。 JPEGデータを接合する場合の不具合について説明する図である。
以下添付図面を参照して本発明の好適な実施例について、さらに具体的かつ詳細に説明する。なお、既に説明した部分には同一符号を付し重複説明を省略する。
なお、この明細書において、「記録」(「プリント」という場合もある)とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わない。また人間が視覚で知覚し得るように顕在化したものであるか否かを問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
最初に共通実施例として用いるマルチファンクションプリンタ装置(以下、MFP装置)の構成について説明する。
<MFP装置>
図1は本発明の代表的な実施例であるMFP装置100の概観斜視図である。
MFP装置は、接続されたホスト(不図示)からの画像データに基づいて、記録用紙などの記録媒体に画像を記録する以外に、メモリカードなどに格納された画像データに基づいた記録や画像原稿を光学的に読取って複写することができる。
図1において、(a)は原稿カバー103が閉じられた状態を示しており、(b)は記録媒体の載置トレー101、排紙トレー102、及び原稿カバー103が開けられた状態を示している。
また、コンタクトイメージセンサ(CIS)ユニットを搭載する読取部8は画像原稿を読取り、R成分、G成分、B成分のアナログ輝度信号を出力する。カードインタフェース9は、例えば、デジタルスチルカメラ(不図示)で撮影された画像ファイルを記録したメモリカードなどを挿入して、操作部4の所定の操作に従い、そのメモリカードから画像データを読み込むのに使用される。また、MFP装置100にはLCD110のような表示部が設けられている。LCD110は操作部4による設定内容の表示や機能選択メニューの表示や画像の表示などのために用いられる。
図2は図1で示したMFP装置の上部に備え付けられた画像読取装置の断面図である。
図2に示すように、画像読取装置200は本体部210と読取対象となる原稿220を押さえつけ外部からの光を遮光する圧板230とから構成される。圧板230は原稿カバー103の裏面にセットされている。本体部210には光学ユニット240、光学ユニット240と電気的に接続された回路基板250、光学ユニット240を走査させる際のレールとなるスライディングロッド260、原稿台ガラス270が備えられる。光学ユニット240には原稿220に光を照射し、その反射光を受光して電気信号に変換するするコンタクトイメージセンサ(CIS)ユニット300が内蔵される。画像読取の際には原稿台ガラス270上に置かれた原稿220を光学ユニット240が矢印Bの方向(副走査方向)に走査することにより原稿220に記録された画像の読取を行う。
図3は画像読取装置(スキャナ)の制御回路の構成を示すブロック図である。
なお、図3において、既に図1〜図2において説明した構成要素には同じ参照番号を付し、その説明は省略する。
CISユニット300はLED駆動回路403において1ライン毎に各色のLED303〜305を切り替えて点灯させることにより、線順次にカラー画像を読み取る。LED303〜305は原稿への照射光量を変化させることが可能な光源である。また、LED駆動回路403はLED303〜305を任意に点灯させることが可能である。
即ち、LED303〜305を1つずつ順次点灯させることも、2つずつ順次点灯させることも、場合によっては3つ全て点灯させることも可能である。増幅器(AMP)404はCISユニット300より出力された信号を増幅し、A/D変換回路405はその増幅された電気信号をA/D変換して、例えば、各画素各色成分16ビットのデジタル画像データを出力する。 画像処理部600は、A/D変換回路405によって変換されたデジタル画像データを処理する。インタフェース制御回路406は画像処理部600から画像データを読み込んで、外部装置412との間で制御データの授受や画像データの出力を行う。また、画像処理部600からの画像データは画像記録部にも出力することができる。外部装置412とは、例えば、パーソナルコンピュータ(不図示)、デジタルカメラ、メモリカードなどである。
また、画像処理部600では外部装置から入力した画像データ、或は、画像読取装置(スキャナ)200が画像原稿を読取ることにより生成した画像データを画像処理して画像記録部700に出力することができる。
画像記録部700は、インタフェース制御回路406からの画像データを画素毎に「記録する」「記録しない」の2値データに変換し、記録媒体に記録剤を用いて画像を記録する。この実施例では、画像記録部700には、インクジェットプリンタを用いている。しかしながら、この他にも、例えば、電子写真方式を用いたレーザビームプリンタ、或は昇華型プリンタなどを用いることができる。これらのプリンタについては公知なので、ここではその詳細な説明は省略する。
次に、以上のような構成のMFP装置の画像処理部の構成と動作について説明する。
画像処理部600は入力した画像データを一時的に格納するためのバッファメモリを備え、画像処理を行うことができる。その処理を実行するに当り、ユーザは操作部4を操作して指示を与えることもできる。例えば、以下に示すような、JPEGデータから一部を切り出す場合の切り出し箇所の指定などを行うことができる。
ここでは、図8に示すように、1枚のJPEGデータから、MCU単位で部分的にJPEGデータ矩形画像として切り出し、切り出した結果を画質劣化なく1枚のJPEGデータとして生成する機能を持つ画像処理装置について説明する。
まず、JPEGデータの構造について説明する。簡単のため、サンプリング比が4:4:4(サブサンプリングしない)で、リスタートマーカーが存在しない例について説明する。また、符号データの“0×FF”の後に挿入される“0×00”(スタッフバイト)はすでに除かれていてここでは考えないものとする。
1つのMCUはY、Cb、Crの3つの色成分からなり、各色成分は8×8画素のブロックを表す。JPEG圧縮処理時に各色成分の8×8画素のブロックに対して、DCT演算および量子化の処理を行って8×8の係数列を得た後、この系数列をジグザグスキャンし、DC成分値(8×8の左上端)とAC成分値(残り63個の係数列)で別々の符号化を行う。DC成分値は、前のMCUでの同じ色成分のDC成分値の本来の値との差分を計算し、その値を1個のハフマン符号に割り当てる。AC成分値については、63個の係数値のうちゼロの個数が多くなる。このため、「ゼロの連続数+非ゼロの数値」の組を1個のハフマン符号語に割り当てる。最後までゼロが続く場合は、EOB(End of Block)という特殊なハフマン符号語を割り当てる。よって、1MCUの1成分のハフマン符号語列は、「DC成分値のハフマン符号語1つ」と「AC成分値の複数のハフマン符号語」がこの順に並んだものとして構成される。これが3色成分並ぶことで1つのMCUの符号を形成し、それがさらに元画像を形成する総MCU分並ぶことで、1枚のJPEG画像データの符号部分を形成する。
図4は1枚の画像を形成するJPEGデータの符号部分の構造をハフマン符号語の1個単位で示す様子を示す図である。
ここでは、図4(a)に示すような16×16画素のサンプリング比4:4:4のカラーJPEGデータを例とする。MCU数は横2×縦2となる。説明の便宜上、個々のMCUには図4(a)のようにMCU0、MCU1、MCU2、MCU3という番号を付す。
MCUiはYCbCr色成分から構成され、各色成分はDC/AC成分値を示す符号語から構成され、うちDC成分値は1個のハフマン符号語で表現され、AC成分値は複数個のハフマン符号語で表現される。これを符号語の単位で示すと図4(b)に示すようになる。
ここで、Yi_DC、Cbi_DC、Cri_DC(i=0〜3)はそれぞれ、MCUiの各色成分のDC成分値を表すハフマン符号語である。Yi_AC[k]、Cbi_AC[k]、Cri_AC[k]はそれぞれ、MCUiの各色成分のAC成分値を示すハフマン符号語のうちk番目であることを示す。また、MCUiの各色成分のAC成分値を示すハフマン符号語の数は、Y、Cb、Cr成分についてそれぞれpi,qi,riであるとする。
さて、Yi_DC、Cbi_DC、Cri_DCの各符号語を元のJPEGデータの各色成分のDC成分ハフマンテーブルに従って複号化して数値に換算する。この場合、その換算値はそれぞれ、Dec[Yi_DC]、Dec[Cbi_DC]、Dec[Cri_DC]になるものとする。MCUiの各色成分のDC成分値の伸張後の値をそれぞれDY[i]、DCb[i]、DCr[i]とすると、JPEG符号化時に前のMCUでのDC成分値との差分値をハフマン符号語に置き換えているため、これらDC成分値は以下のようになる。
即ち、i=0のとき
DY[0] =Dec[Y0_DC]、
DCb[0]=Dec[Cb0_DC]、
DCr[0]=Dec[Cr0_DC]
である。
一方、i≠0のとき
DY[i] =DY[i−1] +Dec[Yi_DC]、
DCb[i]=DCb[i−1]+Dec[Cbi_DC]、
DCr[i]=DCr[i−1]+Dec[Cri_DC]
となる。
ここで、図4(a)に示すような4つのMCUからなるJPEG画像データから、図4(c)に示すようなMCU1とMCU3だけからなるJPEG画像データを切り出す処理について考える。
この場合、MCU1とMCU3のAC成分を表す符号語群は、切り出した後のJPEGデータにおいても同じものを使うことができる。ただしDC成分値については、MCU1のDC成分値がMCU0のDC成分値との差分値を、同じくMCU3ではMCU2との差分値を参照して符号化されている。このため、単純に符号語をMCU単位で切り出しただけでは、切り出した後のJPEG符号データを正常に伸張することができない。つまり、切り出された後の左端のMCU毎に、各色成分のDC成分値を計算(=各MCUで差分値を積算)し、切り出された画像でその前に存在するMCUのDC成分値との差分を計算して、その差分値を符号化しなければならない。
図4(c)に示す例でいうと、MCU1,3のDC成分値は
DY[1] =DY[0] +Dec[Y1_DC]
DCb[1]=DCb[0]+Dec[Cb1_DC]
DCr[1]=DCr[0]+Dec[Cr1_DC]
DY[3] =DY[2] +Dec[Y3_DC]
DCb[3]=DCb[2]+Dec[Cb3_DC]
DCr[3]=DCr[2]+Dec[Cr3_DC]
となる。
ある値xをDC成分値のハフマンテーブルに従って符号化するとEnc[x]という符号語になるものとする。また、MCU1,3のDC成分のハフマン符号語をY’j_DC、Cb’j_DC、Cr’j_DC(j=1,3)とすると、これらは次のようになる。
即ち、
Y’1_DC =Enc[DY[1]] =
Enc[DY[0]+Dec[Y1_DC]]
Cb’1_DC=Enc[DCb[1]]=
Enc[DCb[0]+Dec[Cb1_DC]]
Cr’1_DC=Enc[DCr[1]]=
Enc[DCr[0]+Dec[Cr1_DC]]
Y’3_DC =Enc[DY[3]−DY[1]]
=Enc[DY[2]+Dec[Y3_DC]
−(DY[0]+Dec[Y1_DC]) ]
Cb’3_DC=Enc[DCb[3]−DCb[1]]=
Enc[DCb[2]+Dec[Cb3_DC]
−(DCb[0]+Dec[Cb1_DC])]
Cr’3_DC=Enc[DCr[3]−DCr[1]]=
Enc[DCr[2]+Dec[Cr3_DC]
−(DCr[0]+Dec[Cr1_DC])]
として得られる。
このようにして得られた切出し後のMCU1,3のDC成分値のハフマン符号語を用いて図4(d)のように符号語を並べ、その最初にJPEGヘッダ、最後にEOIマーカを付加する。このようにすることで、図4(c)のMCU1,3のみからなる画像のJPEGデータを生成することができる。
つまり、切り出されたMCU群について、左端のMCUと右端のMCUのDC成分値とその差分値を計算し、左端のMCUについては、そのDC成分符号語を、その差分値から得られる符号語に置き換える。このようにすることで、切出し後のMCU群の符号群が1枚のJPEGデータとして扱えるようになる。
このように、JPEGデータからMCU単位で符号データを切り出す際に、切り出された画像の左端のMCUにおいて、そのDC成分値を計算し、DC成分値を示す符号語のみを書き換え、他の符号語はもとのJPEGデータのものをそのままコピーする。このようにすることで、切り出された結果もまたJPEGデータとすることができる。この切り出し処理においては、量子化・逆量子化、およびDCT演算処理が不要なため、ハードウェア資源(論理回路のゲート数またはCPU処理能力)をさほど必要とせず、また画質劣化を伴うこともない。
図5は、画像処理部600の内部構造を示すブロック図である。この画像処理部ではスキャナから画像原稿を読取って得られたRGB画像データにYCbCrに色空間変換してJPEG符号化し内部のバッファメモリに格納されたJPEGデータを扱う。JPEG符号化そのものについては公知なのでその説明は省略する。なお、この図に示す各ブロックは、ASICなどのハードウェア回路またはソフトウェア処理モジュール(プログラム)のどちらで実現しても良い。また、画像処理部600では、外部装置からJPEGデータを入力した場合には、そのまま処理を実行する。
図5において、DMAコントローラ(DMAC)601がメモリからJPEGデータを読み出し、スタッフバイト除去部602では読み出したJPEGデータから、スタッフバイト(0×FFのあとの0×00)を除去する。次に、ハフマン符号化器603はJPEGデータのハフマン符号化を行い、各符号語に分解する、符号語数カウンタ604は各符号語を解析およびカウントし、MCUの切れ目、YCbCrの各色成分の切れ目、DC/AC成分値の切れ目を判別する。MCU数カウンタ605は符号語数カウンタ604での切れ目の判別結果に従い、入力された符号データのMCU数をカウントする。そして、DC成分値計算ブロック606は各MCUの各色成分のDC成分値を計算する。
またさらに、MCU切り出し部607はカウントされたMCU数に基づき、ハフマン符号化器603で変換された符号語群に対し、削除するMCUに含まれる符号語と切り出して残すMCUに含まれる符号語を弁別する。そして、DC差分値計算部608は、切り出されたMCUについて、計算された各MCUのDC成分値から、切り出された後のMCU群の右端と左端(JPEGデータの接合部)のMCUの各色成分のDC成分値の差分値を計算する。
その後、このようにして計算されたDC差分値について、DC成分値符号語生成部609はその差分値に対応するハフマン符号語を生成する。さらに、バイトパッキング部610では、切り出されたAC成分の符号語と、DC成分値符号語生成部609で書き換えられたDC成分の符号語を合わせ、バイト単位にまとめる。このようにバイト単位にまとめられたJPEGデータの符号語に対し、スタッフバイト挿入部611は、JPEG規格に従って、1バイトが“0×FF”になっているバイトの次に“0×00”のバイトを挿入し、ワードバッファ612に出力する。ワードバッファ612では、出力される符号データ列を一時的にある程度の容量まで貯めることができる。
その後、DMAコントローラ(DMAC)613はワードバッファ612にある程度の容量の符号語データ列がたまった時点で、そのデータをDMA出力する。
なお、DMAC601〜DC成分値計算部606についてはJPEG方式に従う通常の伸張装置内で、バイトパッキング部610〜DMAC613についてはJPEG方式に従う通常の圧縮装置内で行われている処理と同じ機能を持つ。
次に、この画像処理部の各部の動作について説明する。
まず、DMAC601で、JPEGデータを入力する。ここで入力されるJPEGデータにリスタートマーカはなく、またJPEGヘッダとEOIマーカは事前に除去されているものとする。
スタッフバイト除去部602は、入力JPEGデータをバイト単位に分解し、“0×FF”のあとに挿入されている0×00を取り除く。こうすることで、以降のブロックでは、入力データを純粋なハフマン符号語群として扱うことができる。ハフマン符号化器603では、入力されたハフマン符号語群を解析し、符号語ひとつずつに分離する。ハフマン符号化器603からの出力は各MCUの各色成分について、DC成分差分値を表す符号語1つと、AC成分の「ゼロラン+非ゼロ数値」の組み合わせを表す符号語が複数である。
符号語数カウンタ604で、ハフマン符号化器603から出力された符号語を復号し、かつAC成分とDC成分それぞれをカウントする(第1のカウント手段)。AC成分値の符号語群について、ゼロの数+非ゼロ数値の数の合計が“63”になるか、途中でEOBを表す符号語が現れた時点で、MCUの各色成分の切れ目と判断する。DC成分とAC成分の各符号語はそのままMCU切り出し部607へ送られる。
MCU数カウンタ605は、符号語数カウンタ604で分解された符号語群をMCU単位でカウントする(第2のカウント手段)。DC成分値計算部606は、入力された全MCUの全色成分に関するDC成分値を計算し、差分値についてはMCU、各色成分ごとに積算する(第1の計算手段)。
MCU切り出し部607は、カウントされたMCU数に基づいて、ハフマン符号化器603から出力された符号語群のうち、切り出されるMCU以外の符号語とDC成分値を切り捨てる。そして、DC成分値はDC差分値計算部608に、DC符号語はDC成分値符号語生成部609に、AC符号語はバイトパッキング部610へ転送する。なお、どの部分を切り出すのかの切り出し指示は操作部4からユーザが指示しても良いし、外部装置からJPEGデータとともに転送される命令に含まれていてもよい。
DC差分値計算部608では、切り出されるMCUの右端と左端のDC成分値の差分値を得る(第2の計算手段)。図9(c)に示した例でいうと、MCU10,14,18,22,26,30,34について、MCU14と18、MCU22と26、MCU30と34でのDC成分値の差分を、色成分ごとにそれぞれ計算する。MCU10については、その値を差分値とする(=0との差分)。
DC成分値符号語生成部609では、DC差分値計算部608で計算されたMCU(図9(c)の例ではMCU10,18,26,34)についてはそのDC成分差分値について、元のJPEGデータのDC成分ハフマンテーブルに従って符号語に変換する。残りのMCU(MCU11〜14、19〜22、27〜30、35〜38)のDC成分値の符号語についてはそのままとする。その後、すべてのMCUのDC成分符号語をバイトパッキング部610へ出力する。
バイトパッキング部610では、DC成分値符号語生成部609で計算された各MCUのDC成分符号語と、MCU切り出し部607で切り出されたAC成分符号語群を統合し並べる。そして、各MCUについて、Y成分のDC成分符号語、Y成分のAC成分符号語群、Cb成分のDC成分符号語、Cb成分のAC成分符号語群、Cr成分のDC成分符号語、Cr成分のAC成分符号語群の順に並べビット単位で連結する。
スタッフバイト挿入部611で、バイトパッキング部610で生成された符号列を1バイト単位に分割し、そのバイトが“0×FF”になった場合は次のバイトに“0×00”を挿入する。あと、出力の最後のMCUのデータについては、バイト境界までビット1を埋め、最後にEOIマーカ(0×FFD9)を付加する。出力ワードバッファ612は、DMAに都合のいい単位(例えば、32バイト)になるまで出力データを溜め込む。最後に、DMAC613では、出力ワードバッファに蓄積したデータをDMA出力する。
上述の処理を行うことで、入力JPEGデータから、必要な部分だけをMCU単位で切り出し、JPEG規格に合致した画像データとして出力することができる。
従って、以上説明した実施例に従えば、画像劣化を伴うことなく、JPEGデータのMCU単位での切り出しや接合を行うことができる。また、量子化/逆量子化やDCT演算処理を行わないため、以上の処理をハードウェアで実現する場合には論理回路のゲート数を削減したり、ソフトウェアで実現する場合はその処理時間など短縮するなど、処理資源を節約することができる。
この実施例では、図6に示すように、複数のJPEGデータをMCU単位で接合し、接合した結果の画像を画質劣化なく1つのJPEGデータとして生成する機能を持つ画像処理装置について説明する。接合する複数のJPEGデータは、色成分数、サンプリング比、ハフマンテーブル、量子化テーブルがすべて同一でなければならない。
説明を簡単にするため、この実施例では図6(a)(b)のように同じ高さの2枚のJPEGデータを左右に接合する場合について説明する。しかしながら、予め1MCU分の白画像JPEGデータを用意しておくことで、同様の手法を用いて任意のサイズのJPEGデータを任意の位置(MCU単位)に接合することが可能である。3つ以上のJPEGデータを接合する場合は、2つずつ接合する処理を繰り返せばよい。なお、どの部分を接合するのかの接合指示は操作部4からユーザが指示しても良いし、外部装置からJPEGデータとともに転送される命令に含まれていてもよい。
図7はこの実施例に従う画像処理部の構成を示すブロック図である。この図に示す各ブロックはそれぞれ、ハードウェアで実現しても良いし、ソフトウェアで実現しても良い。この点は実施例1の画像処理部と同様である。また、図6において、601a〜606aと601b〜606bはそれぞれ図5の601〜606と同じ構成要素である。この例では、2枚のJPEG画像を扱うため、入力JPEGデータが2つあり、これらをそれぞれ独立に処理する必要があるので、図6に示すような構成となっている。前者をパスA、後者をパスBと呼ぶ。ここでは、入力画像データが図6の(a)、(b)である場合を例として説明する。(a)に示すJPEGデータはパスAを通り、(b)に示すJPEGデータはパスBを通すものとする。その他、図5で示したのと同じ構成要素には同じ参照番号を付し、その説明は省略する。
なお、図7ではこの実施例の機能を説明するために2つのパスを明示し、そのパスを通過する構成要素を601a〜606aと601b〜606bとして明記したが、必ずしもパスの数に対応する構成要素が必要な訳ではない。例えば、図5に示すような構成要素601〜606が2つのパス(2つのデータストリーム)を並列処理可能な構成であっても良い。
この実施例の画像処理部に特徴的な構成は符号語データマージ部614であり、接合する2つ画像を表わすJPEGデータの符号語群をマージする。
符号語データマージ部614は、パスAを通る図6(a)に示すJPEGデータのMCU1,2,3について、符号語数カウンタ604aからDC成分とAC成分の符号語群と、DC成分値計算部606aからDC成分値を入力する。そして、DC成分値、DC符号語、AC符号語をそれぞれ、DC差分値計算部608,DC成分値符号語生成部609,バイトパッキング部610へ転送する。
次にパスAの処理をいったん止め、パスBを通る図6(b)に示すJPEGデータのMCU13〜17についても、符号語数カウンタ604bとDC成分値計算部606bとから符号語群とDC成分値を受信する。そして、同様にDC成分値、DC符号語、AC符号語をそれぞれ、DC差分値計算部608,DC成分値符号語生成部609,バイトパッキング部610へ転送する。
ここでパスBの処理を止め、パスAを通る図6(a)に示すJPEGデータのMCU4,5,6の処理を行う。以降同様の処理を繰り返す。
DC差分値計算部608では、図6(a)と(b)に示すJPEGデータに関し、互いが接合するブロックにおいて、DC差分値を再計算する。図6の例では、図6(c)の斜線が施されたブロックに関してこの処理を行う。つまり、MCU13ではMCU3のDC成分値との差分を取る。以降同様に、MCU4とMCU17、MCU18とMCU6、MCU7とMCU22、MCU23とMCU9、MCU10とMCU27、MCU28とMCU12の間においてDC成分値の差分値を計算する。このようにして計算された差分値に基づき、DC成分値符号語生成部609はDC成分値の符号語に変換する。
これ以降は実施例1と同様に、MCUが接合された境界部分(MCU13,4,18,7,23,10,28)におけるDC成分符号語のみを書き換える。そして、それ以外のDC成分、と全てのAC成分の符号語は、図6(a)(b)に示す該当MCUのものをそのまま用いて図6(c)に示すMCU順にデータを並べる。
このように並べられたJPEGデータに対してバイトパッキング部610でバイトパッキングを、スタッフバイト挿入611ではスタッフバイト挿入を実行し、出力ワードバッファ612にデータを出力し一時的に保存する。最後に、DMAC613から処理されたJPEGデータをDMA出力する。このようにして、図6(a)(b)に示す2つのJPEGデータが接合された図6(c)に示すJPEGデータを得ることができる。
従って、以上説明した実施例に従えば、複数のJPEGデータをMCU単位で接合し、接合した結果の画像を画質劣化なく1つのJPEGデータとして生成することができる。
以上説明したようにこれらの実施例によれば、JPEGデータを入力として、ハフマン符号化とMCU単位のDC成分値の計算を行い、JPEGデータの切り出しや接合が起きた場所でのDC成分値の相対値を再計算する。そして、該当するDC成分値の符号語のみを書き換える処理を行ってから、それ以外(AC成分値)の符号語群を入力から出力にコピーする。
なお、これらの場合、JPEGデータの符号部のみを対象とし、画像サイズやサンプリング比や量子化テーブルを含むJPEGヘッダ部については処理の対象としない。画像の切り出しや接合処理において、処理後の画像のヘッダ部については、別の処理部で適当に処理されることを想定している。

Claims (8)

  1. 複数のブロックに分割されている画像に対応し、当該複数のブロックのうちの連続する2つのブロックにおけるDC成分値の差分を含むJPEGデータを入力する入力手段と、
    前記入力手段により入力された2つの画像に対応するJPEGデータに基づいて、当該2つの画像の接合が実行されたときの接合画像において接合前の前記2つの画像の内の一方の画像のブロックと他方の画像のブロックとにより新たに連続することになる2つのブロックの組み合わせを特定する特定手段と、
    前記入力手段により入力された前記2つの画像に対応する前記JPEGデータに基づいて、前記特定手段により特定された前記新たに連続することになる2つのブロックの組み合わせにおけるDC成分値の差分を算出する算出手段と、
    前記算出手段により算出された差分が含まれている、前記接合画像に対応するJPEGデータを作成する作成手段とを有することを特徴とする画像処理装置。
  2. 前記作成手段は、前記算出手段により算出された2つのブロックのDC成分値の差分が、当該2つのブロックの一方のブロックのDC成分値として含まれているJPEGデータを作成することを特徴とする請求項1に記載の画像処理装置。
  3. 前記特定手段は、前記接合画像の互いに対向する2つの端部それぞれに対応するつのブロックを、前記新たに連続することになる2つのブロックとして特定することを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記特定手段は、前記接合画像において前記接合により新たに隣接することになる2つのブロックを、前記新たに連続することになる2つのブロックの組み合わせとして特定することを特徴とする請求項1又は2に記載の画像処理装置。
  5. 前記作成手段は、前記合の実行対象のJPEGデータに含まれているDC成分値の差分を、前記算出手段により算出された差分で書き換えることによって、前記接合画像に対応するJPEGデータを作成することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
  6. 前記作成手段は、前記入力手段により入力されたJPEGデータに含まれている、前記2つの画像それぞれのブロックに対応するAC成分値を、前記接合画像における当該ブロックに対応するAC成分値として含むJPEGデータを作成することを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
  7. 複数のブロックに分割されている画像に対応し、当該複数のブロックのうちの連続する2つのブロックにおけるDC成分値の差分を含むJPEGデータを入力する入力工程と、
    前記入力工程において入力された2つの画像に対応するJPEGデータに基づいて、当該2つの画像の接合が実行されたときの接合画像において接合前の前記2つの画像の内の一方の画像のブロックと他方の画像のブロックとにより新たに連続することになる2つのブロックの組み合わせを特定する特定工程と、
    前記入力工程において入力された前記2つの画像に対応する前記JPEGデータに基づいて、前記特定工程において特定された前記新たに連続することになる2つのブロックの組み合わせにおけるDC成分値の差分を算出する算出工程と、
    前記算出工程において算出された差分が含まれている、前記接合画像に対応するJPEGデータを作成する作成工程とを有することを特徴とする画像処理方法。
  8. 請求項7に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラム。
JP2010285170A 2010-12-21 2010-12-21 画像処理装置、画像処理方法、及びプログラム Expired - Fee Related JP5247793B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010285170A JP5247793B2 (ja) 2010-12-21 2010-12-21 画像処理装置、画像処理方法、及びプログラム
US13/303,113 US20120154856A1 (en) 2010-12-21 2011-11-22 Image processing apparatus, image processing method, and storing medium
EP20110009310 EP2469857A3 (en) 2010-12-21 2011-11-24 Image processing apparatus, image processing method, and storing medium
KR1020110133640A KR20120070501A (ko) 2010-12-21 2011-12-13 화상 처리 장치, 화상 처리 방법, 및 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010285170A JP5247793B2 (ja) 2010-12-21 2010-12-21 画像処理装置、画像処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2012134776A JP2012134776A (ja) 2012-07-12
JP5247793B2 true JP5247793B2 (ja) 2013-07-24

Family

ID=45093277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010285170A Expired - Fee Related JP5247793B2 (ja) 2010-12-21 2010-12-21 画像処理装置、画像処理方法、及びプログラム

Country Status (4)

Country Link
US (1) US20120154856A1 (ja)
EP (1) EP2469857A3 (ja)
JP (1) JP5247793B2 (ja)
KR (1) KR20120070501A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6541387B2 (ja) 2015-03-23 2019-07-10 キヤノン株式会社 処理装置及びその制御方法、プログラム
JP2021164046A (ja) 2020-03-31 2021-10-11 キヤノン株式会社 画像処理装置、記録装置、画像処理方法、およびプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608458A (en) * 1994-10-13 1997-03-04 Lucent Technologies Inc. Method and apparatus for a region-based approach to coding a sequence of video images
JP3169783B2 (ja) * 1995-02-15 2001-05-28 日本電気株式会社 動画像の符号化・復号システム
US5838831A (en) * 1996-09-26 1998-11-17 Xerox Corporation Compression of image data with retaining cost data for each compressed image block
US6072536A (en) * 1997-10-29 2000-06-06 Lucent Technologies Inc. Method and apparatus for generating a composite image from individual compressed images
US6381371B1 (en) * 1999-03-17 2002-04-30 Hewlett-Packard Company Method and apparatus for processing image files
JP2001111841A (ja) * 1999-10-13 2001-04-20 Seiko Epson Corp 印刷システム
JP4097585B2 (ja) * 2003-09-30 2008-06-11 ナルテック株式会社 出力装置および印刷装置
EP1685537B1 (en) * 2003-11-18 2015-04-01 Mobile Imaging in Sweden AB Method for processing a digital image and image representation format
JP2006129295A (ja) 2004-10-29 2006-05-18 Olympus Corp 画像データ結合装置、画像データ結合方法、画像データ結合プログラム
JP4151684B2 (ja) * 2005-01-26 2008-09-17 ソニー株式会社 符号化装置、符号化方法および符号化プログラム、並びに撮像装置
JP4666261B2 (ja) * 2006-06-01 2011-04-06 富士ゼロックス株式会社 画像処理装置及びプログラム
JP2008067002A (ja) * 2006-09-06 2008-03-21 Seiko Epson Corp 画像処理装置、及びそれを備える印刷装置
US8068693B2 (en) * 2007-07-18 2011-11-29 Samsung Electronics Co., Ltd. Method for constructing a composite image
CN102325257A (zh) * 2007-07-20 2012-01-18 富士胶片株式会社 图像处理设备和图像处理方法
JP2010016781A (ja) * 2008-07-07 2010-01-21 Canon Inc 画像処理装置及びその制御方法

Also Published As

Publication number Publication date
KR20120070501A (ko) 2012-06-29
JP2012134776A (ja) 2012-07-12
EP2469857A2 (en) 2012-06-27
US20120154856A1 (en) 2012-06-21
EP2469857A3 (en) 2012-08-15

Similar Documents

Publication Publication Date Title
JP4979655B2 (ja) 画像符号化装置及びその制御方法
JP2017525220A (ja) ビデオ符号化における構文の2値化とコンテキスト適応型符号化の方法と装置
US20140286417A1 (en) Data encoding and decoding
TWI524740B (zh) 隨機存取記憶體中壓縮資料的系統及方法
EP2697974A2 (en) Methods and devices for coding and decoding the position of the last significant coefficient
JP5015088B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム、及び、情報記録媒体
JP2008118304A (ja) 復号装置及び復号方法
JP2009152990A (ja) 画像符号化装置及び画像復号化装置
JP5247793B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US20050249422A1 (en) Image data structure, and image recording method, apparatus and computer readable recording medium storing program
CN113994680A (zh) 用于图片的子部分的独立cabac
EP1734738A2 (en) Image encoding and decoding method and apparatus, and computer-readable recording medium storing program for executing the method
US20220116640A1 (en) Image encoding apparatus, image decoding apparatus, image encoding method, image decoding method, and non-transitory computer-readable storage medium
US20220116603A1 (en) Image encoding apparatus, image decoding apparatus, image encoding method, image decoding method, and non-transitory computer-readable storage medium
JP3952116B2 (ja) 画像圧縮装置及び方法
Fernandez et al. Jpeg metadata: A complete study
US20220116602A1 (en) Image encoding apparatus, image decoding apparatus, image encoding method, image decoding method, and non-transitory computer-readable storage medium
JP5521083B2 (ja) 画像符号化装置
JP2000059612A (ja) 画像処理装置及びその方法
JP4757172B2 (ja) 画像符号化装置及びその制御方法
US11765366B2 (en) Method for processing transform coefficients
JP4218727B2 (ja) 画像再生方法、画像再生装置、画像再生プログラム
JP4218728B2 (ja) 画像記録再生方法、画像記録再生装置、画像記録再生プログラム
JP2008182324A (ja) 画像処理装置、画像形成装置、画像形成システム、及びプログラム
JP2001309182A (ja) 画像処理装置および方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130201

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130409

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

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees