JP4662325B2 - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP4662325B2
JP4662325B2 JP2003004947A JP2003004947A JP4662325B2 JP 4662325 B2 JP4662325 B2 JP 4662325B2 JP 2003004947 A JP2003004947 A JP 2003004947A JP 2003004947 A JP2003004947 A JP 2003004947A JP 4662325 B2 JP4662325 B2 JP 4662325B2
Authority
JP
Japan
Prior art keywords
image processing
block
image data
image
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
JP2003004947A
Other languages
English (en)
Other versions
JP2003309719A5 (ja
JP2003309719A (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
Priority to JP2003004947A priority Critical patent/JP4662325B2/ja
Application filed by Canon Inc filed Critical Canon Inc
Priority to US10/365,551 priority patent/US7266254B2/en
Publication of JP2003309719A publication Critical patent/JP2003309719A/ja
Publication of JP2003309719A5 publication Critical patent/JP2003309719A5/ja
Priority to US11/826,215 priority patent/US7822296B2/en
Priority to US12/430,014 priority patent/US7899275B2/en
Priority to US12/430,735 priority patent/US7889935B2/en
Priority to US13/019,122 priority patent/US8165427B2/en
Application granted granted Critical
Publication of JP4662325B2 publication Critical patent/JP4662325B2/ja
Priority to US13/419,376 priority patent/US8867864B2/en
Priority to US14/109,544 priority patent/US9361664B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ブロック化された画像データに対し、クリッピング処理や解像度変換、回転処理等の画像処理を実施するのに好適な画像処理装置及び画像処理方法に関する。
【0002】
【従来の技術】
従来、ブロック化された画像データに対して、クリッピング処理、解像度変換処理及び回転処理のような画像処理を行って所望のデータを生成する画像処理装置においては、入力されたブロック状の画像データをラスタ化した後、それぞれの画像処理が行われていた。
【0003】
【発明が解決しようとする課題】
しかしながら、従来の画像処理方法では、一旦ラスタ化した後に画像処理が行われるために、全体の画像処理に要する時間が長くなるだけでなく、画像処理の際に必要となる処理用のメモリを画像処理装置に多く搭載する必要があるという問題があった。また、画像の回転等の並び替え処理を行う場合、従来の方法では並び替え処理のためのバッファが必要であった。また、並び替え処理のためのバッファを削減するために、書き込みアドレスにおいて並び替えを実行した場合は、連続したアドレスにならないため、バーストモードを使用できず、アクセスに時間がかかるという問題もあった。
【0004】
本発明は、このような事情を考慮してなされたものであり、ブロック化された画像データに対して画像処理を実施するに際し、画像データ全体に対する画像処理速度を高速化するとともに、画像処理に必要とされるメモリの容量を小さくすることができる画像処理装置及び画像処理方法を提供することを目的とする。
【0005】
【課題を解決するための手段】
上記課題を解決するため、本発明に係る画像処理装置は、画像データをブロックごとに画像処理する画像処理手段と、前記画像データの各ブロック単位において画像処理を実行するか否かの実行情報を入力する実行情報入力手段と、前記ブロックごとに、前記実行情報を利用して前記画像データを画像処理するか否かを判定する判定手段とを備え、前記画像処理手段が、画像処理を実行すると判定されたブロックの画像データについて画像処理を行うとともに、前記判定手段が、前記画像処理を実行すると判定されたブロックを示す第2の実行情報を生成することを特徴とする。
【0008】
【発明の実施の形態】
以下に本願発明の実施形態を示す。もちろん以下の実施形態は、本願発明の技術分野における当業者による実施を容易にするために開示を提供するものであり、特許請求の範囲によって確定される本願発明の技術的範囲に含まれるほんの一部の実施形態にすぎない。従って、本願明細書に直接的に記載されていない実施形態であっても、技術思想が共通する限り本願発明の技術的範囲に包含されることは当業者にとって自明であろう。
【0009】
なお、以下には便宜上複数の実施形態を記載するが、これらは個別に発明として成立するだけでなく、もちろん、複数の実施形態を適宜組み合わせることでも発明が成立することは、当業者であれば容易に理解できよう。
【0010】
[第1の実施形態]
以下、図面を参照して、本発明の第1の実施形態による画像処理装置について説明する。
【0011】
図1は、本発明の第1の実施形態による画像処理装置の概要を説明するためのブロック図である。図1において、入力部1から入力される画像データとして、一定サイズ(例えば8×8画素など)にブロック状にスキャンされた画像データが入力される。このようなデータはJPEGのようにブロック符号化した画像データを復号化した際に生成される。
【0012】
画像処理部2は入力部1に接続し、ブロック化された画像データに各種画像処理をブロック単位に行った後、ラスタ化した画像データに変換する前段画像処理部21と、ラスタ変換された画像データに対して画素単位の画像処理が行われる後段画像処理部22とから構成される。また、出力部3は画像処理部2に接続され、画像処理部2で処理された画像データを外部に出力する、或いは記憶装置等に記憶するための出力装置である。尚、画像処理部2内における画像処理部は上述した2つに限定されるものではなく、1つであっても3つ以上であってもよい。すなわち、本発明は、画像処理後の画像データに対して、所定ブロックごとに画像処理を実行する第1の画像処理手段(前段画像処理部21)を備えることを特徴とする。また、本発明は、第2の画像処理手段(後段画像処理部22)が、1画素単位で画像データを画像処理することを特徴とする。
【0013】
図2は、図1における前段画像処理部21の細部構成を説明するためのブロック図である。図2に示すように、本実施形態における前段画像処理部21は、入力された画像データの範囲から処理範囲を指定するクリッピング処理部211と、画像データの解像度を変換する解像度変換処理部212と、画像データの並び替えを行う並び替え処理部213と、ラスタ化のためのバンドバッファとして使用するSDRAM214とから構成される。
【0014】
尚、図2において、最初の処理部であるクリッピング処理部211へ入力される画像データをData_in、また、各処理部から出力される画像データをDataで示す。そして、説明のために出力される画像データである「Data」の前には、その処理を表す名称を付与している。さらに、最初の処理部であるクリッピング処理部211へ入力された画像データに関する有効信号をValid_in、各処理部で処理される画像データに関する有効信号をValidとする。このValidの前にも、その処理を表す名称を付与している。本実施形態による前段画像処理部21は、入力される画像データData_inと、入力される画像データに関する有効信号Valid_inを用いて、入力された画像データが有効である場合(有効信号Valid_in=Hが入力された場合)についてのみ、入力された画像データを取り込んでそれぞれの処理を行うようにしている。
【0015】
まず、図1に示す入力部1から前段画像処理部21のクリッピング処理部211に対して、画像データData_inと有効信号Valid_inが入力される。上述したように本実施形態では、入力される画像データはブロック化された画像であるとする。例えばクリッピング処理部211には、ブロック符号化する際に用いられた8×8画素のブロックごとの画像データが画像データData_inとして入力され、同時に、入力された画像データが有効データであれば有効信号Valid_in=Hが入力される。なお、無効データの場合はValid_in=Lが入力される。
【0016】
クリッピング処理部211では、入力された画像データがクリッピングされる範囲(クリッピング有効範囲)であるかどうかの判定をブロック単位で行う。その結果、入力された画像データが有効データで、かつ、クリッピング有効範囲内の画像データであると判定された場合は、有効信号(Crip_Valid=H)が出力される。また、当該画像データがクリッピング有効範囲以外あるいは無効データの場合は、有効信号を出力しない(Crip_Valid=L)。あるいは当該画像データがクリッピング有効範囲以外の場合に他の無効信号を出力してもよい。クリッピング処理部211におけるこの動作によって、クリッピング処理部211に接続された解像度変換処理部212では、クリッピング処理部211が有効であると判定したブロックのみについて解像度変換処理を実施することが可能となる。
【0017】
図3は、クリッピング処理部211で実施されるクリッピング処理について説明するための概略図である。図3(a)に示すように、画像データの横方向をX、縦方向をYとする。このとき、ブロック単位でクリッピングする範囲を次のようにして指定する。すなわち、クリッピング範囲を矩形領域として、まず領域の左上の頂点をStart_Pointとして、その座標(XS,YS)が指定される。同様に、矩形領域の右下の頂点をEnd_Pointとして、その座標(XE,YE)が指定される。この2点で図3に示すようにして定義することができる矩形領域の範囲で囲まれた部分を本実施形態ではクリッピングし、当該範囲内のブロックについて有効信号Crip_Validを出力する。なお、クリッピング範囲の指定方法は、上記に限らず始点(または終点)とサイズ(幅、高さ)を用いても良い。また、画素単位のクリッピングパラメータからブロック単位のクリッピングパラメータを生成しても良い。
【0018】
尚、本実施形態においてクリッピング処理の際に用いられるブロック形状は、図3(a)に示すような正方形だけに限定せず、図3(b)に示す例のように横長形状のブロックや、図3(c)に示す例のような縦長形状のブロックであってもよい。即ち、任意のブロック形状に適用できる。
【0019】
上述したように、JPEG画像におけるDCTブロック(8×8画素)単位のように、ブロック化された画像データについては、第1のクリッピング処理にてブロック単位のクリッピングを行うことでブロック単位の出力画素の削減を行い、また、その後の画像処理にて第2クリッピング処理を行うことで画素単位のクリッピングが可能である。そして、このクリッピング処理部211にてブロック単位で画像データを有効データ又は無効データの判定を行い、有効データのみを後段の処理部で処理するようにすることによって、その後の処理において無駄な処理を削減でき、画像処理全体の負荷の軽減を図ることが可能となる。
【0020】
特に、前段画像処理部21の出力をバッファに格納する場合は、バッファ容量の削減も可能である。なお、ブロック単位のクリッピングであるので、ブロック内の画素数などのパラメータは全てのブロックで同一となり、後段の処理も含めてクリッピングのために増加する処理はない。また、上述したようにクリッピング処理は有効信号の操作により行うので、後段処理のインタフェース(I/F)も変更不要である。なお、本実施形態では、以降の処理へクリッピング終了信号(Crip_Finish)を各処理におけるレイテンシ(latency)を補償して伝播することにより、以降の処理を適切なタイミングで終了させるようにしている。この構成により、最終段の処理にて最終画素のタイミングを検出でき、最終処理の終了を割込み信号等によってCPU等へ通知することで無駄な処理(時間)の削減が可能である。
【0021】
解像度変換処理部212では、有効信号Crip_Validに対応したブロックに対して解像度変換(Resize)処理が行われる。本実施形態では、解像度変換処理部212はブロックサイズの縮小を実行する。例えば、8×8画素のブロックを4×4画素のブロックに変更する。即ち、ブロックサイズの縮小にて出力画素の削減を行うのである。解像度変換処理をブロック内で行うことにより、単純な解像度変換を可能にしている。例えば、入力画像が8×8画素の大きさのブロック状に入力される場合、解像度変換後のブロックサイズは、8×8、7×7、6×6、5×5、4×4、3×3、2×2、1×1の8通りしかなく、係数の生成が容易である。また、横方向・縦方向に同じ縮小回路を用いることができるだけでなく、ラインメモリも不要となる。但し、線形補間の場合は横方向の縮小回路と縦方向の縮小回路との間にブロックの横方向画素分のレジスタが必要となる。
【0022】
尚、7×7画素以下に縮小する場合は、適切なタイミングで有効信号出力を無効(Resize_Valid=L)とすることで解像度変換処理部をパイプライン化できる。即ち、パイプライン化した場合、所定のタイミングで不要信号が発生するが、有効信号出力を無効(Resize_Valid=L)とするだけで間引き処理を容易に実行できる。この操作により、縮小率による制御は係数の切り替えと有効信号出力の切り替えのみで良く、処理が簡略化できる。
【0023】
このように、入力される画像データのブロックサイズにあわせてブロック内で解像度変換処理を行うことにより、簡単に画像データの解像度変換が実現できる。もちろん、さらに細かな解像度変換を後段画像処理部22等で行うことも可能である。そして、解像度変換されたブロックが、有効画像データの場合は同様にして、解像度変換された画像データResize_Data_outと当該画像データに関する有効信号Resize_validを出力することにより、次に行われる並び替え処理の処理対象をさらに削減することが可能となる。なお、拡大方向の解像度変換は、出力画素数が増加するので、ここでは実行しない。
【0024】
並び替え処理部213における並び替え処理では、YCrCb信号の同時化(点順次化)及び回転、ラスタ化の処理が行われる。通常、ブロック符号化においては符号化効率向上のため、輝度データYと色差データCrCbに変換されて符号化される。従って、本実施形態の並び替え処理部213には輝度データYと色差データCrCbがブロック順に入力される。よって、後段でYCrCbデータをRGBデータに変換するにはYCrCbデータの同時化が必要になる。本実施形態では、このYCrCbデータの同時化のためのバッファを用いてYCrCbデータの同時化及びブロック内回転、ブロック内ラスタ化の処理を同時に実行する。
【0025】
まず、Yブロックデータが入力されているときはYブロックバッファ(不図示)に格納し、Crブロックデータが入力されているときはCrブロックバッファ(不図示)に格納し、Cbブロックデータが入力されているときはCbブロックバッファ(不図示)に格納する。次に、Yブロックバッファ、Crブロックバッファ、Cbブロックバッファの画素位置を合せて同時に読み出すことで同時化する。輝度データYと色差データCrCbのサンプリングレートが異なる場合は、サンプリングレートの低い方(通常は、色差データ)のデータを補間して出力する。また、複数ブロックで構成されている場合は、複数ブロックを結合した状態でラスタ化して出力する。
【0026】
画像全体のラスタ化はバンドバッファ(SDRAM214上に構成)に対する格納時に行われる。なお、ここでは上記YCrCbの点順次データをRGBデータに変換した後、上記バンドバッファに格納するものとする。上記ブロック内ラスタ化及びYCrCb同時化(点順次化)された画像データは上記バンドバッファの該当位置にブロック状に格納される。その結果、上記バンドバッファにはクリッピング範囲内のラスタ化された画像が格納される。
【0027】
また、ラスタ変換の実行と同時に、画像データの回転処理を行う場合には、ブロック内の回転を上記ブロックバッファにて実行した後、回転モードに合せてブロックの先頭アドレスを変更しながらデータをバンドバッファに保存すればよい。予めブロック内の回転を上記ブロックバッファにて実行しておくことで、回転モードによるバンドバッファへの書き込みシーケンスの違いは、ブロックの先頭アドレスの設定のみに集約される。よって、後段画像処理部22等では、ラスタ変換及び回転処理がされたRGB点順次画像データを用いて画像処理を実施することができる。
【0028】
図4は、並び替え処理部213で行われる回転処理を説明するための概略図である。図4において、回転処理の例として画像データの0度、90度、180度及び270度の4つの角度での回転例が示されている。この例で用いられている画像データは、横成分が4ブロック、縦成分が3ブロックの4×3ブロックの画像である。この例に示すように、画素単位での並び替え(回転)処理と、ブロック単位での並び替え(回転)処理は同様にして実施することができる。
【0029】
図4に示すように、並び替え(回転)処理の対象となる画像40において、画像内の各ブロックには番号が付与されている。この番号は右側の数字が画像のX成分、左側の数字が画像のY成分としている。すなわち、X=0、Y=0のブロックは、「00」で表され、X方向に1ずれた、すなわちブロック00の右隣のブロックは「01」で表現されている。
【0030】
画像40に対して回転角0度の並び替え処理を実施した場合、画像40と同じ配置の画像41が例えばSDRAM214に記憶される。
【0031】
回転角180度の並び替えをした場合、画像43に示すように、画像40において左上に位置したブロック00を右下へ移動しなければならない。このように、ブロック00からブロック23までのすべてのブロックを移動する。また、回転角90度、270度の場合も同様の処理をブロック単位で行うことにより、それぞれ画像42、44に示すような結果となる。なお、90度及び270度の場合は縦横のサイズが逆になる。
【0032】
さらに、並び替え処理部213における処理について説明する。図5は、第1の実施形態における並び替え処理部213の処理動作の具体例を説明するための図である。図5を用いて、画像データのアドレスの連続性を増加させることと、転送効率を向上させる効果が得られる理由について説明する。ここでは並び替え処理部213で、4×4画素のブロックで構成される画像50を180度に回転する処理を行って画像51が生成されるものとする。従来の処理では、入力画素順に画像51の位置に対応するアドレスを生成する処理を行っていたので、画像データがSDRAM214に記録されるような場合、アドレスは減少する方向になるのでバーストモードが使用できず、SDRAM214へのアクセスは1画素ごとになり、転送効率が非常に悪くなっていた。
【0033】
しかし、本実施形態では、回転処理を行った後の画像データを、一旦、ブロックバッファ52へ保存する。これによって、アドレスが増加する方向に連続した複数のデータ(図5においては4つのデータ)を一度にSDRAM214へ記録させることが可能になる。すなわち、従来1ブロック16回のアクセスが必要であったのを4回のアクセスで済むようになった。つまり、ブロック内の並び替え処理を行うことによって、アドレスの連続性が増加し、これによって転送効率を向上させることが可能になったのである。
【0034】
図6は、クリッピング処理以降の解像度変換処理と並び替え処理を詳細に説明するための図である。ここでは、解像度変換部212に対して1ブロックが8×8画素で構成された画像データが入力され、解像度変換によって解像度が4×4画素のブロックに変換されるものとする。そして、並び替え処理部213において、180度回転の並び替え処理が行われるものとする。
【0035】
まず、1ブロック8×8画素(0〜63)のデータが、輝度信号Yの0番目のデータから順番に有効信号Crip_Validと同時に、解像度変換部212に入力される。そして、解像度変換部212において解像度変換処理が行われ、1ブロック4×4画素の画像データに変換される。そして、変換された画像データは上述したような並び替え処理が行われ、一旦、Yブロックバッファ60、Crブロックバッファ61、Cbブロックバッファ62にそれぞれ格納される。1ブロック分のYCrCbデータが格納されると、Yブロックバッファ60、Crブロックバッファ61、Cbブロックバッファ62のそれぞれの先頭より順番に読み出され、RGBデータに変換されてバンドバッファの該当アドレスに格納されて並び替えが完了する。
【0036】
なお、上述したような画像処理部2における各処理の順番は任意である。さらに、何れかの処理が欠落していてもよい。さらにまた、各処理において入力信号をそのまま出力するモード(スルーモード)を設け、各処理の実行を任意に選択することができるようにしてもよい。
【0037】
また、上述した実施形態では、ブロック符号化のようにブロック化された画像を例としてSDRAM等の記憶装置を用いた装置による説明を行ったが、これは、ソフトウェア処理で行ってもよい。
【0038】
上述したように、本発明は、画像データに対して所定ブロックごとに画像処理を実行する画像処理手段を備える画像処理装置であって、ブロックごとに画像データを画像処理するか否かを判定する判定手段を備え、画像処理手段が、画像処理を実行すると判定されたブロックの画像データについて画像処理を行うことを特徴とする。
【0039】
また、本発明は、画像データに対して画像処理を実行する範囲を指定する指定手段(クリッピング処理部211)を備えることを特徴とする。さらに、本発明は、画像データを所定解像度に変換する解像度変換手段(解像度変換処理部212)を備えることを特徴とする。さらにまた、本発明は、画像データを構成するブロックの位置を所定位置に並び替える並び替え手段(並び替え処理部213)を備えることを特徴とする。
【0040】
さらに、本発明は、入力画像データがラスタ化される前のJPEG復号化データであって、画像処理に用いられるブロックが、JPEG復号化が行われた際に用いられたブロック(8×8画素またはMCU)であることを特徴とする。さらにまた、本発明は、画像データがラスタ化される前のMPEG復号化データであって、画像処理に用いられるブロックが、MPEG復号化が行われた際に用いられたブロック(8×8画素またはMB)であることを特徴とする。
【0041】
次に、上述した構成による画像処理装置の処理動作について説明する。図8は、第1の実施形態による前段画像処理部21の動作手順を説明するためのフローチャートである。
【0042】
まず、画像処理装置の入力部1から処理対象となる画像データを入力するとともに、不図示の操作部等を用いて上述した各画像処理に必要なパラメータ設定が行われる(ステップS81)。ここで、画像処理におけるパラメータとは、画像をクリッピング処理する範囲の指定、解像度変換処理のサイズ、並び替え処理に必要な回転モード、サンプリングモード(JPEGでの4:4:4、4:2:2:、4:2:0等)、出力バンドバッファの領域等のことである。
【0043】
次に、入力された画像データに対して、クリッピング処理部211においてクリッピング処理が行われる(ステップS82)。図9は、ステップS82でのクリッピング処理手順を詳細に説明するためのフローチャートである。
【0044】
ここでは、図3に示したように、クリッピングの範囲始点を(XS,YS)とし、終点を(XE,YE)として指定した場合を例に挙げる。上述したように、本発明においては、あるブロック単位でのクリッピングが行われる。尚、より細かいクリッピングを後段処理部で行うことが可能である。このブロック単位とは、例えばJPEGデータであれば、DCTブロックである8×8画素単位、あるいはY,Cr、CbをひとつにまとめたMCUを単位としてもよい。このようなブロック単位でのクリッピング処理を行うことにより、バンドバッファに格納されるデータ量を削減する。これにより後段画像処理部22での処理に要する負荷を軽減することができるだけでなく、画像処理装置全体の処理速度も速くなる。
【0045】
ステップS91では、クリッピング処理が終了したか否かの判定が行われる。即ち、クリッピング範囲の指定を始点(XS,YS)と終点(XE,YE)で示される矩形領域とした場合、入力画像ブロックの座標X,YがXE、YEの範囲を共に越えている場合(YES)、すでにクリッピングしたい範囲を越えていることを示すので、ここで終了処理を行う(ステップS93)。この終了処理により、後段画像処理部22に対して終了したことを示す指示(これにより、後段画像処理部22が起動する)や、終了信号(Crip_Finish)の伝播により、前段画像処理部21におけるその後の処理を終了させることも可能である。
【0046】
一方、ステップS91においてクリッピング処理が終了していない場合(NO側)、指定した範囲がクリッピング範囲内かの判定が行われる(ステップS92)。その結果、クリッピング範囲内の場合(YES側)、有効データ処理を行って後続する画像処理部(ここでは解像度変換処理ステップS83)に対して有効なデータであることを示す(ステップS94)。一方、ステップS92において有効範囲でないと判定された場合(NO側)、無効データであることを示す(ステップS95)。なお、後続する画像処理部に信号等を出力しないことによって、無効データ処理とすることも可能である。入力ブロックに対する有効データ処理ステップS94及び無効データ処理ステップS95が終了すると、次のブロックの判定のため、終了判定ステップS91に戻り、上記操作を繰り返す。
【0047】
ステップS82においてクリッピング処理にて有効と判断されたブロックには、解像度変換処理が行われる(ステップS83)。図10は、ステップS83で行われる解像度変換処理の詳細を説明するためのフローチャートである。解像度変換処理部212では、まず解像度変換があるか否かの判定が行われる(ステップS101)。その結果、解像度変換がないと判定された場合(NO側)、解像度変換処理を行うことなく終了し、後続する画像処理部に入力された画像データをそのまま渡す。一方、解像度変換があると判定された場合(YES側)、解像度変換のパラメータ設定が行われる(ステップS102)。そして、設定されたパラメータに従い解像度変換処理が行われ、所望のサイズになるように間引き処理や線形補間処理等の処理が行われる(ステップS103)。なお、図8のパラメータ設定ステップS81にて設定された解像度変換処理後のサイズより、解像度変換処理判定ステップS101を行い、パラメータ設定ステップS102を省略することも可能である。例えば、入力画像のブロックの横サイズが8で、解像度変換後の横サイズが8未満の場合、解像度変換を行う。この時、解像度変換後の横サイズが解像度変換のパラメータになっており、たとえは4に設定されている場合、解像度変換によって8×8画素のブロックが4×4のブロックに縮小される。
【0048】
ステップS83で解像度変換処理が行われた後、並び替え処理部213において、ブロック内の並び替え(回転等)処理が行われる(ステップS84)。そして、処理された画像データがSDRAM214に保存される(ステップS85)。ステップS84において、並び替え処理が実行されることによって保存時にアドレス生成が簡単になるだけでなく、従来の1画素ごとの保存(シングルライト)ではなく、複数個単位の保存(バーストライト)が可能となり、1画素あたりのアクセス速度を早くすることができる。
【0049】
すなわち、保存先がSDRAMとすると、SDRAMへの書き込みアドレスの連続性を増加させて、転送効率を上げることが可能となる。さらに、保存先が組み込み機器のメインメモリのように、多くのバスマスタからのアクセスが生じるような場合においては、アクセス効率をあげることによって後段画像処理部22の画像処理だけでなく、他の処理への影響も少なくすることができる。
【0050】
さらにまた、JPEG画像を例にあげて説明すると、クリッピング処理において本実施形態のようにブロック単位で大まかな切り抜きを行い、その後、切り抜いたブロックに対して解像度変換を行い、ラスタ化されたRGB点順次データとして保存することにより、後段処理部における画素単位のクリッピングや、より詳細な解像度変換等の処理をより簡単に行うことができる。
【0051】
すなわち、本発明に係る画像処理装置は、画像データを画像処理するための条件を設定する条件設定手段と、画像データに対して画像処理を実行する範囲を指定する指定手段と、画像データを所定解像度に変換する解像度変換手段と、画像データを構成するブロック内での順番を並び替える並び替え手段と、並び替えたブロックを記録デバイスの所定位置に記録する記録手段とを備えることを特徴とする。
【0052】
上述したように、ブロック単位でクリッピング処理、解像度変換処理、並び替え処理を行うことにより、処理動作そのものが簡単になるだけでなく、後段処理部への負荷を軽減できるといえる。また、各処理の途中で画像データを保存する場合、その保存に必要な容量も少なくすることが可能となる。
【0053】
また、ブロック単位ですでに並び替えを行っているので保存先等へのアドレス生成が簡単になり、また並び替えを行っているので、連続データとして一度に複数のデータを格納することが可能となり、転送効率が良くなる。
【0054】
[第2の実施形態]
図11は、本発明の第2の実施形態に係る画像処理装置の構成を示すブロック図である。図中、110はJPEG復号化回路、111はMCUクリッピング回路、112はMCU縮小回路、113はブロック内回転回路、114はブロックバッファ、115は点順次化回路、116はRGB変換回路、117はページバッファ、118は画素クリッピング回路、119はリサイズ回路である。以下、第1の実施形態と異なる部分のみ説明する。
【0055】
入力部1よりJPEG圧縮画像がJPEG復号化回路110に入力され、復号化されてMCU単位に出力される。MCUクリッピング回路111はMCU単位に有効・無効を判定し、有効MCUはMCU縮小回路112で所望のサイズに縮小され、ブロック内回転回路113のアドレス生成によりブロックバッファ114の回転後の所定位置に格納される。MCU1つ分のデータがブロックバッファに格納されると、点順次化回路115はブロックバッファ114よりY、Cr、Cbのデータを同時に読み出しRGB回路116にてRGBデータに変換する。なお、Cr、Cbデータがサブサンプリングされている場合は、点順次化時に補間して出力する。変換されたRGBデータはページバッファ117にMCU単位で回転モードに対応したアドレスに格納される。
【0056】
1ページ分のデータがページバッファ117に格納されると、不図示のプリントエンジンの同期信号に従ってページバッファ117のページ先頭よりRGBデータが読み出される。画素クリッピング回路118は上記MCUクリッピング回路111でクリッピングされなかった画素をクリップしリサイズ回路119にて所望のサイズに変換した後、出力部よりプリントエンジンに出力される。
【0057】
次に、具体的な動作について説明する。
【0058】
図12は、第2の実施形態に係る画像処理装置による画像処理の具体例を説明するための図である。図2に示すように、本実施形態では2272×1704画素、サンプリングモードを4:2:2のJPEG画像から1600×1200画素をトリミングして1ページが680×480画素のプリンタにて出力するものとする。なお、トリミング範囲は左上の頂点を(0,0)としたとき、始点(300,300)と終点(1899,1499)で囲まれる矩形範囲(境界含む)とする。
【0059】
サンプリングモードは4:2:2であるので、MCUサイズは16×8となる。従って横方向のMCU数は2272/16=142、縦方向のMCU数は1704/8=213(いずれも8ビットで良い)となり、MCUクリッピング回路111の横方向MCUカウンタは142進にセットされる。また、トリミングの始点座標は(300,300)、終点座標は(1899,1499)であるから、MCU有効範囲は(XS,YS)=(18,37)、終点座標は(XE,YE)=(119,187)となる。なお、トリミング領域が必ずしもMCU境界と一致するとは限らないので、始点(XS,YS)は切り捨て、終点(XE,YE)は切り上げとなる。具体的には、XSは右4ビットシフトした値、YSは右3ビットシフトした値、XEは右4ビットシフトした値にシフト前の下位4ビットをORした結果(0または1)を加算した値、YEは右3ビットシフトした値にシフト前の下位3ビットをORした結果を加算した値となる。
【0060】
MCUクリッピング回路111は上記(XS,YS)=(18,37)及び(XE,YE)=(119,187)をMCUカウンタの値と比較し、有効範囲のMCUのときのみ、前述した有効信号Crip_Validを"H"にする。
【0061】
MCU縮小回路112は有効範囲内のMCUサイズを所定サイズに縮小する。図13は、MCU縮小回路112の細部構成を示すブロック図である。同図に示したように、MCU縮小回路112は、横サイズ縮小回路131と縦サイズ縮小回路132の2つの縮小回路、有効信号生成回路133にて構成される。
【0062】
有効信号生成回路133は入力される上記有効信号Crip_Validに従い、内部の横カウンタ、縦カウンタをインクリメントする。この2つのカウンタにより、ブロック内での画素位置を把握する。本実施形態ではブロックサイズは8×8画素なので、横カウンタ、縦カウンタは共に3ビットで、横カウンタのキャリーで縦カウンタがインクリメントされる。横カウンタの値xは横サイズ縮小回路131に、縦カウンタの値yは縦サイズ縮小回路132に供給され、各々補間係数の選択に使用される。また、横カウンタの値x及び縦カウンタの値yは各々有効信号テーブルに入力され、有効信号に変換される。有効信号テーブルは縮小サイズ別に8ビットの出力を持ち、各カウンタの値より1ビットを選択する。なお、ここでは説明の簡略化ため、テーブル構成としているが、後述するようにカウンタ値より有効信号を直接生成しても良い。生成された縦、横の有効信号は、入力された有効信号Crip_Validにタイミングを合せてANDし、MCU縮小回路有効信号Resize_Validとして出力する。
【0063】
図14は、横サイズ縮小回路131又は縦サイズ縮小回路132の具体的な構成を示すブロック図である。横サイズ縮小回路と縦サイズ縮小回路との違いは、バッファ144の遅延量で、横サイズ縮小回路の場合は1画素分で、縦サイズ縮小回路の場合は1ライン(8画素)分である。ここでは隣接する画素と補間画素との位置より線形補間で求める。例えば、縮小後のサンプリングポイントが画素Aと画素Bの間で、サンプリングポイントから画素Bまでの距離とサンプリングポイントから画素Aまでの距離の比がα:(1−α)のとき、補間ポイントの値Pは、
P=αA+(1−α)B (1)
となる。
【0064】
図15は、MCU縮小後のサンプリングポイントを具体的に示す図である。網点がかかっている丸が縮小後のサンプリングポイントを表している。図15において、(a)は7×7画素、(b)は6×6画素、(c)は5×5画素、(d)は4×4画素、(e)は3×3画素、(f)は2×2画素に縮小した場合を示している。なお、1×1画素に縮小した場合は縮小前の(x,y)=(3,3)の位置に一致する。図から明らかなように、縦方向、横方向共に8画素周期の繰返しになっている。つまり、ブロック内で縮小は完結している。なお、折り返しノイズ除去のため、JPEG復号化回路110ではQテーブルを操作し、折り返しノイズとなる高周波成分を排除してから逆DCTするものとし、1×1画素、2×2画素、4×4画素では補間せずに該当する位置のデータがそのまま出てくるものとする。また、図中の円で囲まれた数字は、有効となるタイミングを示している。
【0065】
図7は、図15に示したそれぞれのサンプリングポイントの場合における補間係数(256倍して整数化した値)を示す図である。ここでα=256は縮小後のサンプリングポイントと入力画素の位置が一致している場合を表し、この場合は補間せずに入力画素データをそのまま出力する。また、上述したように、横サイズ縮小回路と縦サイズ縮小回路の補間回路は同じであるので、補間係数も同一となる。従って、縦サイズ縮小回路132においては、図7におけるxはyに置き換わる。
【0066】
なお、図7で背景がドットになっている欄は無効データを示しており、このタイミングのときの有効信号は"L"(無効)となる。従って、補間係数はどのような値を設定してもかまわない。ここでは、回路の簡略化のため、無効データのときの補間係数も規定している。例えば、全ての係数はx≧4で出現順が逆転(αと(1−α)も入れ替え)するようになっている。また、縮小後のサイズWが6の時と3の時の係数を同一にしている。例えばW=7の時の係数テーブルは(255,219,183,146,110,73,37,0)に設定し、αは左から(1−α)は右から読み出せばよい。なお、係数テーブルのビット数を削減するため、係数が255の時は補間せずに入力データをそのまま出力する(スルーモード)。
【0067】
また、縮小後のサイズWが2のべき乗の時は、全てスルーモードとしているので、係数は不要である。さらに、(1−α)はαの2の補数となるので、αのビット反転+1より生成しても良い。この場合、例えば上記W=7の時の係数テーブルは(0,37,73,110)の4つの係数のみで良い。αは(1−α)のビット反転+1より生成し、x≧4では逆順に読み出した値をαに、読み出した値のビット反転+1を(1−α)にセットする。
【0068】
なお、x=7(またはy=7)の時、無効データとしているのは、バッファ144による遅延を補償するためである。通常、横サイズ縮小回路では1画素分、縦サイズ縮小回路では8画素分のレイテンシ(遅延)が発生する。このため、MCU縮小回路112の補間出力は9画素分のレイテンシ(遅延)で出力され、入力有効信号及び横サイズ縮小の有効信号は、縦サイズ縮小の有効信号とタイミングを合せてからANDをしなければならない。しかし、上述のようにx=7(またはy=7)の時、無効データとすることで、内部の動作タイミングを入力有効信号に同期化することができ、上記タイミング調整は不要になる。但し、上記横サイズ縮小回路、縦サイズ縮小回路の出力をラッチする場合は、2画素分のレイテンシ補償が必要である。さらに、x=0(またはy=0)のデータも可能な限り使用しないようにしている。これは、DCTの高周波成分削減による歪の影響は周辺部に大きく現れるので、周辺部の画素の使用を避けて上記歪の影響を少なくするためである。
【0069】
上記縮小回路の有効信号は簡単に生成できる。即ち、
W=1の時はx=3で"H"、
W=2の時はxの下位2ビット=01で"H"、
W=3の時はx=1,4,6で"H"、
W=4の時はxのLSB=0で"H"、
W=5の時はx=(2,5,7)以外で"H"、
W=6の時はx=(3,7)以外で"H"、
W=7の時はx=(7)以外で"H"、
となる。
【0070】
x=7で常に有効信号を"L"とすれば、さらに簡略化できる。例えば、W=7では判定は不要になり、W=6はW=1の反転で良い。また、W=5はW=3に+1したものの反転であり、2と5(W=3においては1と6)は1の補数の関係にあるので、xのMSBと下位の2ビットそれぞれをEXORすることによって判定すればよい。
【0071】
上述したように、ブロックバッファ114ではブロック内の回転及び点順次化が実行される。JPEGの場合、サンプリングモードが4:2:0のときMCUの画素サイズが最大となる。このとき、JPEG復号化回路110からはMCUとして輝度信号が4ブロック(Y0,Y1,Y2,Y3)、色差信号が各1ブロック(Cr、Cb)の6ブロックが8×8画素のブロック毎に順次入力される。ブロックバッファ114には3つのブロックバッファ(Yブロックバッファ、Crブロックバッファ、Cbブロックバッファ)があり、各々個別のRAMより構成されている(但し、CrブロックバッファとCbブロックバッファのアドレスは共通化できるので、データバスの上位・下位に分離して格納することで同一RAM上に構成しても良い)。
【0072】
ブロック内回転回路113には入力される上記有効信号Resize_Validに従い、内部の書き込み用横カウンタ、縦カウンタ、ブロックカウンタをインクリメントする。上記縦・横2つのカウンタにより、ブロック内での画素位置を把握し、ブロックカウンタにてブロックの位置を把握する。本実施形態ではブロックサイズは最大8×8画素なので、横カウンタ、縦カウンタは共に3ビットとなる。また、MCU縮小回路112でサイズが変更されている場合は、横カウンタ、縦カウンタはサイズ分のカウンタとなる。即ち、縮小後のサイズをWとすると、カウンタがW−1の時にキャリーが発生し、0に戻る(W進カウンタ)。なお、縦カウンタは、横カウンタのキャリーでインクリメントされる。また、MCU内のYブロックの数は最大4なので、ブロックカウンタは2ビットとなり、横カウンタのキャリーと縦カウンタのキャリーのANDでインクリメントされる。
【0073】
書き込み用横カウンタの値をXw、縦カウンタの値をYw、ブロックカウンタの値をBwとすると、Yブロックバッファへの書き込みアドレスは(Bw,Yw,Xw)となる(ここで","はビット結合を示す)。同様にCrブロックバッファとCbブロックバッファの書き込みアドレスは(Yw,Xw)となる。
【0074】
図16は、図12の具体例における輝度信号データがYブロックバッファに格納される様子を示した図である。なお、四角の中の番号は格納されるタイミングを示している。本実施形態では、MCU縮小した場合においても、並び替えせずに縮小前の8×8画素単位に格納している。これにより、格納時のアドレスが回転モードに依存しなくなり、アドレス生成が容易になる(アドレス生成部での制御は、Y,Cr,Cbのブロックシーケンス及び縮小後のサイズWによるキャリー制御のみとなる)。
【0075】
図17は、図12の具体例における色差信号データがCrブロックバッファ及びCbブロックバッファ(Crブロックバッファ及びCbブロックバッファは同一のメモリ上に構成しても良い。)に格納される様子を示した図である。なお、四角の中の番号は格納されるタイミングを示している。図中に示したように本実施形態では、MCU縮小にて1/2以下(W≦4)に縮小した場合、サブサンプリングされている方向の縮小後の画素サイズを2倍にする。即ち、輝度信号の縮小後の画素サイズをWとした時、サブサンプリングされている方向の画素データの縮小後のサイズは2Wとなる。この構成により、縮小による色差信号の解像度の劣化を最小にする。
【0076】
一方、読み出し時は、読み出し用の横カウンタ、縦カウンタ及びブロックカウンタによってアドレスを生成する。上記カウンタの構成はサンプリングモード及び回転モードにより異なる。ここでは、各サンプリングモードに対応するため、Yブロックバッファ用は横カウンタを3ビット、縦カウンタを4ビット、ブロックカウンタを1ビットにて構成し、C(Cr,Cb共通)ブロックバッファ用は横カウンタを4ビット、縦カウンタを3ビットにて構成する。
【0077】
例えば、Yブロックバッファ用カウンタの場合、4:4:4モードでは横カウンタ、縦カウンタ共にW進アップダウンカウンタ(3ビット)として動作し、4:2:2モードでは、横カウンタはW進アップダウンカウンタ、縦カウンタは2W進のアップダウンカウンタ(0°、180°)またはW進のアップダウンカウンタ+1ビットのブロックカウンタ(90°、270°)として動作し、4:2:0モードでは、横カウンタはW進アップダウンカウンタ、縦カウンタは2W進のアップダウンカウンタ+1ビットのブロックカウンタとして動作する。上記カウンタ構成の切り替えはキャリー(ボロー)の生成方法によって行う。なお、ダウンカウント時の初期値はW−1(W進)または2W−1(2W進)である。
【0078】
図18は、回転モードとYブロックバッファの読み出し位置との関係を示す図である。図中の四角は8×8画素のブロックを、四角中の数字はブロックの入力順を、小さな四角は縮小後のブロック位置を示している。また、矢印はデータの読み出される方向を示している。また、ドットで示されているブロックは4:2:2モードの時の対象ブロックを示している。
【0079】
Yブロックバッファの読み出し用横カウンタの値をXr、縦カウンタの値をYr(またはYr')、ブロックカウンタの値をBrとし、また、C(Cr,Cb)ブロックバッファの読み出し用横カウンタの値をXcr(またはXcr')、縦カウンタの値をYcr(またはYcr')、とすると、図18より、各ブロックバッファの読み出しアドレスは下記の式で表される。尚、以下では、","はビット結合を、"!"はダウンカウントを示すものとする。
(1)サンプリングモード=4:4:4の時(Y、Cr、Cb共通)
0°のとき: Yr,Xr
90°のとき:!Xr,Yr
180°のとき:!Yr,!Xr
270°のとき: Xr,!Yr
(2)サンプリングモード=4:2:2の時
[Yブロックアドレス]、(Yr'は2W進)
0°のとき:Yr'[0],Yr'[3..1],Xr
90°のとき:Br,!Xr,Yr
180°のとき:!Yr'[0],!Yr'[3..1],!Xr
270°のとき:!Br,Xr,!Yr
[Cr,Cbブロックアドレス](W>4の時、Xcr'、Ycr'は2W進)
0°のとき:Ycr,Xcr'[3..1]
90°のとき:!Xcr,Ycr'[3..1]
180°のとき:!Ycr,!Xcr'[3..1]
270°のとき:Xcr,!Ycr'[3..1]
[Cr,Cbブロックアドレス](W≦4の時、Xcr'、Ycr'は2W進)
0°のとき:Ycr,Xcr'
90°のとき:!Xcr,Ycr'
180°のとき:!Ycr,!Xcr'
270°のとき:Xcr,!Ycr'
(3)サンプリングモード=4:2:0の時
[Yブロックアドレス](Yr'は2W進)
0°のとき:Br,Yr'[0],Yr'[3..1],Xr
90°のとき:!Yr'[0],Br,!Xr,Yr'[3..1]
180°のとき:!Br,!Yr'[0],!Yr'[3..1],!Xr
270°のとき:Yr'[0],!Br,Xr,!Yr'[3..1]
[Cr,Cbブロックアドレス](W>4の時、Xcr'、Ycr'は2W進)
0°のとき:Ycr'[3..1],Xcr'[3..1]
90°のとき:!Xcr'[3..1],Ycr'[3..1]
180°のとき:!Ycr'[3..1],!Xcr'[3..1]
270°のとき:Xcr'[3..1],!Ycr'[3..1]
[Cr,Cbブロックアドレス](W≦4の時、Xcr'、Ycr'は2W進)
0°のとき:Ycr'[3..1],Xcr'
90°のとき:!Xcr'[3..1],Ycr'
180°のとき:!Ycr'[3..1],!Xcr'
270°のとき:Xcr'[3..1],!Ycr'
なお、上記カウンタの内、所定カウンタの機能(アップカウントとダウンカウント)を逆転させることで、縦及び横の任意の鏡像を得ることができる。
【0080】
また、有効信号を操作することにより、各ブロックバッファのカウンタを共通にすることも可能である。この場合、読み出し用の横カウンタ、縦カウンタ及びブロックカウンタは各々3ビット、4ビット、1ビットのバイナリカウンタでよく、Yブロックバッファの読み出しアドレスは、
0°のとき:Br,Yr[0],Yr[3..1],Xr
90°のとき:!Yr[0],Br,!Xr,Yr[3..1]
180°のとき:!Br,!Yr[0],!Yr[3..1],!Xr
270°のとき:Yr[0],!Br,Xr,!Yr[3..1]
のようになる。但し、","はビット結合を、"!"はビット反転を示すものとする(以下同じ)。
【0081】
また、C(Cr,Cb)ブロックバッファの読み出しアドレスは、
4:2:2モードでW>4の時、
0°のとき:Yr[3..1],Yr[0],Xr[2..1]
90°のとき:!Yr[0],!Xr[2..1],Yr[3..1]
180°のとき:!Yr[3..1],!Yr[0],!Xr[2..1]
270°のとき:Yr[0],Xr[2..1],!Yr[3..1]
4:2:0モードでW>4の時、
0°のとき:Br,Yr[3..2],Yr[0],Xr[2..1]
90°のとき:!Yr[0],!Xr[2..1],Br,Yr[3..2]
180°のとき:!Br,!Yr[3..2],!Yr[0],!Xr[2..1]
270°のとき:Yr[0],Xr[2..1],!Br,!Yr[3..2]
4:2:2モードでW≦4の時、
0°のとき:Yr[3..1],Yr[0],Xr[1..0]
90°のとき:!Xr,Br,Yr[2..1]
180°のとき:!Yr[3..1],!Yr[0],!Xr[1..0]
270°のとき:Xr,!Br,!Yr[2..1]
4:2:0モードでW≦4の時、
0°のとき:Br,Yr[2..1],Yr[0],Xr[1..0]
90°のとき:!Yr[0],!Xr[1..0],Br,Yr[2..1]
180°のとき:!Br,!Yr[2..1],!Yr[0],!Xr[1..0]
270°のとき:Yr[0],Xr[1..0],!Br,!Yr[2..1]
となる。
【0082】
また、横方向のアドレス(図18のX方向)を反転するだけで横方向の鏡像を、縦方向のアドレス(図18のY方向)を反転するだけで縦方向の鏡像を出力させることができる。
【0083】
なお、この場合の有効信号は、
0°のとき:Xr<WかつYr<Wのとき有効
90°のとき:!Xr<WかつYr<Wのとき有効
180°のとき:!Xr<Wかつ!Yr<Wのとき有効
270°のとき:Xr<Wかつ!Yr<Wのとき有効
となる。
【0084】
さらに、4:2:2モードで、無効なブロックの読み出しを削減するため、Yブロックバッファの読み出しアドレスを、
0°のとき:0,Yr[0],Yr[3..1],Xr
90°のとき:0,Yr[3],!Xr,Yr[2..0]
180°のとき:0,!Yr[0],!Yr[3..1],!Xr
270°のとき:0,!Yr[3],Xr,!Yr[2..0]
C(Cr,Cb)ブロックバッファの読み出しアドレスをW>4の時、
0°のとき:Yr[3..1],Yr[0],Xr[2..1]
90°のとき:!Xr,Yr[3..1]
180°のとき:!Yr[3..1],!Yr[0],!Xr[2..1]
270°のとき:Xr,!Yr[3..1]
C(Cr,Cb)ブロックバッファの読み出しアドレスをW≦4の時、
0°のとき:Yr[3..1],Yr[0],Xr[1..0]
90°のとき:!Xr,Yr[3],Yr[1..0]
180°のとき:!Yr[3..1],!Yr[0],!Xr[1..0]
270°のとき:Xr,!Yr[3],!Yr[1..0]
に設定するようにしても良い。この場合は図18の灰色のブロックのみ読み出される。
【0085】
なお、本実施形態では、ブロックバッファの読み出し時にブロック内回転を行う構成としたが、図19及び図20に示すようにブロックバッファへのデータ書き込み時にブロック内回転した位置へデータを格納するようにしても良い。すなわち、図19は、書き込み時にブロック内回転した時の輝度信号データがYブロックバッファに格納される様子を示す図である。また、図20は、書き込み時にブロック内回転した時の色差信号データがCrブロックバッファ及びCbブロックバッファに格納される様子を示す図である。
【0086】
また、本実施形態では、読み出し時に8×8画素単位の識別が可能であるので、読み出し時の有効信号を操作することにより、8×8画素単位のクリッピングを行うことも可能である。この場合、MCU単位、DCTブロック(8×8画素)単位、画素単位の3段階のクリッピングになる。あるいはMCU単位のクリッピングを省略して、DCTブロック(8×8画素)単位、画素単位の2段階のクリッピングとしても良い。
【0087】
さらに、点順次化されたYCrCbデータはRGB変換回路116にてRGBデータに変換され、ページバッファ117に格納される。
【0088】
さらにまた、ページバッファ117への格納は、上記MCU単位で行われる。
【0089】
MCUの先頭アドレスは、上記ブロック内の並び替えと同様に、横方向のMCUカウンタ及び縦方向のMCUカウンタより生成できる。但し、この場合、複数の乗算が必要となり、アドレス生成が複雑になる。そこで、現画素のアドレスに差分アドレスを加算して次画素のアドレスを求める方法(以下、「差分アドレッシング法」と記す)によりページバッファの格納アドレスを生成する。即ち、直前画素のアドレスをA(n−1)、差分アドレスをDとしたとき、現画素のアドレスA(n)を、
A(n)=A(n−1)+D (2)
とする。
【0090】
差分アドレスDは、回転やサンプリングモードにより下記に示すシーケンスにて切り替わる。ここで、MCUラインエンド(右端のMCUの最終画素)における差分アドレスをDl、MCUラインエンド以外のMCUエンド(MCUの最終画素)における差分アドレスをDm、MCUエンド以外のブロック内ラインエンド(MCU内の右端画素)における差分アドレスをDbとする。また、MCU内の横方向カウンタの値をx、MCU内の縦方向カウンタの値をy、横方向のMCUカウンタの値をMx、縦方向のMCUカウンタの値をMy、回転後のMCUサイズをWx×Wy、横方向のMCU数をWm、縦方向のMCU数をHmとする。この時の各差分アドレスの切り替えタイミングを下記に示す。
【0091】
D=Dl:x=Wx−1、y=Wy−1、z=m−1の時
D=Dm:x=Wx−1、y=Wy−1、z≠m−1の時
D=Db:x=Wx−1、y≠Wy−1の時
D=1 :上記以外
ここで、z=Mx、m=Wm:0°、180°回転時、
z=My、m=Hm:90°、270°回転時である。
【0092】
また、各差分アドレス及びアドレスの初期値A(0)は、ページバッファの先頭アドレスをAsとすると、
Db=Wm×Wx−Wx+1:各回転モード共通
[0°回転]
A(0)=As
Dl=1
Dm=−Wm×Wx×(Wy−1)+1
[90°回転]
A(0)=As+(Wm−1)×Wx
Dl=−Wm×Wx×(Hm×Wy−1)−2Wx+1
Dm=Wm×Wx−Wx+1
[180°回転]
A(0)=As+Wm×Wx×(Hm−1)×Wy+(Wm−1)×Wx
Dl=−Wm×Wx×(2Wy−1)+(Wm−2)×Wx+1
Dm=−Wm×Wx×(Wy−1)−2Wx+1
[270°回転]
A(0)=As+Wm×Wx×(Hm−1)×Wy
Dl=Wm×Wx×((Hm−2)×Wy+1)+1
Dm=−Wm×Wx×(2Wy−1)−Wx+1
となる。
【0093】
例えば、図12の例では、MCUクリッピング回路により101×151MCUの画像になり、MCU縮小回路にて16×8画素のMCUは6×3画素のMCUサイズに縮小され、ブロック内回転回路にて90°回転されて出力される。従って、MCU縮小回転後のMCUサイズは3×6となる。即ち、Wx=3、Wy=6、Wm=151、Hm=101である。よって、ページバッファの先頭アドレスAs=0とおくと、A(0)=450、Dl=−274070、Dm=Db=451となる。MCU内の横方向カウンタxは3進カウンタで、このカウンタのキャリーでMCU内の縦方向カウンタyがカウントアップする。MCU内の縦方向カウンタyは6進カウンタで、このカウンタのキャリーでMCUカウンタMyがカウントアップする。MCUカウンタMyは101進カウンタで、0から100までカウントアップし、0に戻る。なお、横方向のMCUカウンタは不要である。
【0094】
差分アドレスDは、1,1,451、1、1,451,…,1,1,−274070,…のように、3回に1回451に、1818回(101×6×3回)に1回−274070に切り替わる。即ち、上記カウンタのキャリーに同期して切り替わる。
【0095】
上述のように、回転モード、MCU縮小回転後のMCUサイズ、画像の縦及び横のMCU数によって上記パラメータWx、Wy、Wm、Hmが決定され、MCU内の横方向カウンタ、MCU内の縦方向カウンタ、MCUカウンタの構成が決まる。また、上記差分アドレスDl、Dm、Dbは上記パラメータで一意に決まり、パラメータに変更がない限り一定である。したがって、上記差分アドレスDl、Dm、Db及びアドレスの初期値A(0)をレジスタに格納することにより、複雑な演算なしにアドレス生成が可能である。また、上述したように、通常はD=1となる(アドレスが増加する方向に連続する)ので、バーストライトによるメモリの使用効率の向上が可能である。
【0096】
ページバッファ上には回転された状態で格納されているので、ページバッファ117からの読み出しは、モードに関係なくページバッファの先頭アドレスAsより順次(連続して)行われる。読み出された画像データは、上記MCUクリッピング回路111でクリッピングされなかった画素を画素クリッピング回路118にてクリップし、リサイズ回路119にて所望のサイズに変換した後、出力部よりプリントエンジンに出力される。例えば、図12の例では、ページバッファ上に453×606画素のサイズで格納されている。これをユーザ設定領域である450×600画素(1200×1600の3/8倍)にクリップして、さらに、出力画像サイズである480×640画素に拡大(16/15倍)して出力部より出力する。
【0097】
本実施形態ではMCU縮小回路にて目的のサイズ付近にまで縮小する。図12の例では1200×1600画素を480×640画素にしたいので、縮小率は480/1200=0.4となる。この値は1/8(=0.125)単位の縮小率の中では3/8(=0.375)が最も近い。従って、MCU縮小回路にて3/8に縮小し、後段のリサイズ回路で16/15倍することで、3/8×16/15=0.4を実現する。
【0098】
上述したプリントエンジンの同期信号に従って画像信号を出力するような場合、1/2以下の縮小を1度で実行すると縮小後のサンプリングポイントが離れてしまうので、補間に用いる画素の読み出しは不連続になってしまう。従って、ページバッファをDRAM上に構成した場合は、メモリの使用効率が下がる。一方、本実施形態では1/16以上の縮小率においては、リサイズ回路119での縮小率は1/2以上となり、連続読み出しにて対応可能となる(リサイズ回路119にラインメモリを装備した場合は先頭より画像データを読み出すだけでよい)。即ち、メモリアクセスの連続性が向上し、メモリ使用効率が向上する。また、JPEG復号化回路のQテーブルを操作し、折り返しノイズとなる高周波成分を排除してから逆DCTする構成により、折り返しノイズ除去のためのプリフィルタが不要となる。また、縮小率が1/2以下においては色差信号のサブサンプリングによる補間を行わないようにしたので、色差信号の解像度の劣化が抑えられる。
【0099】
なお、上記説明ではページバッファにて並び替えを行っているが、これに限らず、バンドバッファ(ページバッファの一部)でも良い。
【0100】
以上、本発明の実施形態を説明したが、これに限らず本発明は、複数の機器(例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。
【0101】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0102】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0103】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0104】
【発明の効果】
以上説明したように、本発明によれば、画像データに対して処理に必要な範囲を一定のブロック単位で指定して必要な範囲にだけ画像処理を実施し、その後の画像処理より詳細な画像処理を行うので、画像データ全体に対する画像処理速度を高速化するとともに、画像処理に必要とされるメモリも小さくすることができる。また、メモリアクセスの連続性を向上させ、メモリ使用効率を向上することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態による画像処理装置の概要を説明するためのブロック図である。
【図2】図1における前段画像処理部21の細部構成を説明するためのブロック図である。
【図3】クリッピング処理部211で実施されるクリッピング処理について説明するための概略図である。
【図4】並び替え処理部213で行われる回転処理を説明するための概略図である。
【図5】第1の実施形態における並び替え処理部213の処理動作の具体例を説明するための図である。
【図6】クリッピング処理以降の解像度変換処理と並び替え処理を詳細に説明するための図である。
【図7】図15に示したそれぞれのサンプリングポイントの場合における補間係数を示す図である。
【図8】第1の実施形態による画像処理装置の動作手順を説明するためのフローチャートである。
【図9】ステップS82でのクリッピング処理手順を詳細に説明するためのフローチャートである。
【図10】ステップS83で行われる解像度変換処理の詳細を説明するためのフローチャートである。
【図11】本発明の第2の実施形態に係る画像処理装置の構成を示すブロック図である。
【図12】第2の実施形態に係る画像処理装置による画像処理の具体例を説明するための図である。
【図13】MCU縮小回路112の細部構成を示すブロック図である。
【図14】横サイズ縮小回路131又は縦サイズ縮小回路132の具体的な構成を示すブロック図である。
【図15】MCU縮小後のサンプリングポイントを具体的に示す図である。
【図16】図12の具体例における輝度信号データがYブロックバッファに格納される様子を示した図である。
【図17】図12の具体例における色差信号データがCrブロックバッファ及びCbブロックバッファに格納される様子を示した図である。
【図18】回転モードとYブロックバッファの読み出し位置との関係を示す図である。
【図19】書き込み時にブロック内回転した時の輝度信号データがYブロックバッファに格納される様子を示す図である。
【図20】書き込み時にブロック内回転した時の色差信号データがCrブロックバッファ及びCbブロックバッファに格納される様子を示す図である。
【符号の説明】
1 入力部
2 画像処理部
3 出力部
21 前段画像処理部
22 後段画像処理部
110 JPEG復号化部
111 MCUクリッピング部
112 MCU縮小部
113 ブロック内回転部
114 ブロックバッファ
115 点順次化部
116 RGB変換部
117 ページバッファ
118 画素クリッピング部
119 リサイズ部
131 横サイズ縮小部
132 縦サイズ縮小部
133 有効信号生成部
141 係数生成部
142、143 乗算器
144 バッファ
145 加算器
211 クリッピング処理部
212 解像度変換処理部
213 並び替え処理部
214 SDRAM

Claims (7)

  1. 画像データをブロックごとに画像処理する画像処理手段と、
    前記画像データの各ブロック単位において画像処理を実行するか否かの実行情報を入力する実行情報入力手段と、
    前記ブロックごとに、前記実行情報を利用して前記画像データを画像処理するか否かを判定する判定手段とを備え、
    前記画像処理手段が、画像処理を実行すると判定されたブロックの画像データについて画像処理を行うとともに、前記判定手段が、前記画像処理を実行すると判定されたブロックを示す第2の実行情報を生成することを特徴とする画像処理装置。
  2. 前記画像データに対して画像処理を実行する範囲を指定する指定手段をさらに備えることを特徴とする請求項1記載の画像処理装置。
  3. 前記画像データを解像度変換する解像度変換手段をさらに備えることを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記画像データを構成するブロックの位置を並び替える並び替え手段をさらに備えることを特徴とする請求項1から3までのいずれか1項に記載の画像処理装置。
  5. 画像データをブロックごとに画像処理する画像処理方法であって、
    前記画像データの各ブロック単位において画像処理を実行するか否かの実行情報を入力させる実行情報入力工程と、
    前記ブロックごとに、前記実行情報を利用して前記画像データを画像処理するか否かを判定する判定工程と、
    画像処理を実行すると判定されたブロックの画像データについて画像処理を行う画像処理工程とを有し、
    前記判定工程では、前記画像処理を実行すると判定されたブロックを示す第2の実行情報を生成することを特徴とする画像処理方法。
  6. 画像データをブロックごとに画像処理する画像処理装置を制御するためのコンピュータプログラムであって、
    前記画像データの各ブロック単位において画像処理を実行するか否かの実行情報を入力させる実行情報入力手順と、
    前記ブロックごとに、前記実行情報を利用して前記画像データを画像処理するか否かを判定する判定手順と、
    画像処理を実行すると判定されたブロックの画像データについて画像処理を行う画像処理手順とを有し、
    前記判定手順では、前記画像処理を実行すると判定されたブロックを示す第2の実行情報を生成することを特徴とするコンピュータプログラム。
  7. 請求項6に記載のコンピュータプログラムを格納したことを特徴とする記録媒体。
JP2003004947A 2002-02-13 2003-01-10 画像処理装置及び画像処理方法 Expired - Fee Related JP4662325B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2003004947A JP4662325B2 (ja) 2002-02-13 2003-01-10 画像処理装置及び画像処理方法
US10/365,551 US7266254B2 (en) 2002-02-13 2003-02-13 Data processing apparatus, image processing apparatus, and method therefor
US11/826,215 US7822296B2 (en) 2002-02-13 2007-07-13 Data processing apparatus, image processing apparatus, and method therefor
US12/430,014 US7899275B2 (en) 2002-02-13 2009-04-24 Data processing apparatus, image processing apparatus, and method therefor
US12/430,735 US7889935B2 (en) 2002-02-13 2009-04-27 Data processing apparatus, image processing apparatus, and method therefor
US13/019,122 US8165427B2 (en) 2002-02-13 2011-02-01 Data processing apparatus, image processing apparatus, and method therefor
US13/419,376 US8867864B2 (en) 2002-02-13 2012-03-13 Data processing apparatus, image processing apparatus, and method therefor
US14/109,544 US9361664B2 (en) 2002-02-13 2013-12-17 Data processing apparatus, image processing apparatus, and method therefor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002-35434 2002-02-13
JP2002035434 2002-02-13
JP2003004947A JP4662325B2 (ja) 2002-02-13 2003-01-10 画像処理装置及び画像処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009096447A Division JP4777447B2 (ja) 2002-02-13 2009-04-10 画像処理装置、画像処理方法、コンピュータプログラム、及び、記録媒体

Publications (3)

Publication Number Publication Date
JP2003309719A JP2003309719A (ja) 2003-10-31
JP2003309719A5 JP2003309719A5 (ja) 2006-03-09
JP4662325B2 true JP4662325B2 (ja) 2011-03-30

Family

ID=29405113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003004947A Expired - Fee Related JP4662325B2 (ja) 2002-02-13 2003-01-10 画像処理装置及び画像処理方法

Country Status (1)

Country Link
JP (1) JP4662325B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007067917A (ja) * 2005-08-31 2007-03-15 Matsushita Electric Ind Co Ltd 画像データ処理装置
JP4687511B2 (ja) * 2006-03-08 2011-05-25 セイコーエプソン株式会社 アドレスを生成し、そのアドレスに画素データを格納するユニット
JP4427592B2 (ja) 2008-08-04 2010-03-10 株式会社東芝 画像処理装置、および画像処理方法
JP5084700B2 (ja) * 2008-11-07 2012-11-28 キヤノン株式会社 画像処理システム、画像処理方法及びプログラム

Also Published As

Publication number Publication date
JP2003309719A (ja) 2003-10-31

Similar Documents

Publication Publication Date Title
US9361664B2 (en) Data processing apparatus, image processing apparatus, and method therefor
JP3748489B2 (ja) 画像処理装置、画像処理方法及びコンピュータ読み取り可能な記憶媒体
US5812146A (en) Image processing apparatus using compressed data processing
CN109146793B (zh) 一种流水线式图像色度格式转换缩放旋转叠加的系统
US6798927B2 (en) Conversion of pixel data for interpolation or image reduction, using a small memory
JP4662325B2 (ja) 画像処理装置及び画像処理方法
JP4777447B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム、及び、記録媒体
JP3599413B2 (ja) 解像度変換装置および解像度変換方法
JP2004213464A (ja) 画像処理装置
JPH07118002B2 (ja) 画像処理装置
JPH09289584A (ja) 画像処理方法及び装置
JP3582540B2 (ja) 解像度変換装置および解像度変換方法
JP4137097B2 (ja) 画像処理装置、画像処理方法及びコンピュータ読み取り可能な記憶媒体
JP4397242B2 (ja) 画像処理装置及び画像処理方法
JP2575641B2 (ja) 画像編集処理方法
JP2653781B2 (ja) 画像編集処理方法
JP2744231B2 (ja) 画像処理装置
JP2000322566A (ja) 画像表示装置及びその制御方法
JPH11168610A (ja) 画像処理装置
JP2744230B2 (ja) 画像処理装置
JP3877054B2 (ja) 画像縮小変倍装置
JP3763751B2 (ja) 画像圧縮伸張装置および画像圧縮伸張方法
JP3875465B2 (ja) 画像縮小方法および画像処理装置および画像処理装置の制御方法
JPS62140549A (ja) 画像編集処理装置
JPH0884249A (ja) カラー画像処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060110

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080624

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090410

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090420

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090612

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090724

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

R150 Certificate of patent or registration of utility model

Ref document number: 4662325

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees