JP6859781B2 - 画像処理装置、画像処理方法およびプログラム - Google Patents

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

Info

Publication number
JP6859781B2
JP6859781B2 JP2017054448A JP2017054448A JP6859781B2 JP 6859781 B2 JP6859781 B2 JP 6859781B2 JP 2017054448 A JP2017054448 A JP 2017054448A JP 2017054448 A JP2017054448 A JP 2017054448A JP 6859781 B2 JP6859781 B2 JP 6859781B2
Authority
JP
Japan
Prior art keywords
image
transfer
area
image data
sram
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.)
Active
Application number
JP2017054448A
Other languages
English (en)
Other versions
JP2018157492A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2017054448A priority Critical patent/JP6859781B2/ja
Priority to US15/785,850 priority patent/US10419638B2/en
Publication of JP2018157492A publication Critical patent/JP2018157492A/ja
Application granted granted Critical
Publication of JP6859781B2 publication Critical patent/JP6859781B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/3877Image rotation
    • H04N1/3878Skew detection or correction
    • 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/21Intermediate information storage
    • H04N1/2104Intermediate information storage for one or a few pictures
    • 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/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Storing Facsimile Image Data (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

本発明は、画像処理装置、画像処理方法およびプログラムに関する。
データ転送を高速に行う手法としてバースト転送がある。バースト転送では、バースト長分の連続するメモリアドレスに格納されているデータが、メモリから連続して読み出される。バースト転送によれば、データごとにアドレスを指定して読み出す通常の手法よりも高速にデータ転送が行われる。
画像読み取り装置により読み取られた(スキャンされた)画像は、メモリ上で、画像読み取り装置の主走査方向の行(ライン)ごとに連続的に格納される。そこで、バースト転送による高速な画像(データ)の読み出しが行われる。
特許文献1には、バースト長に対応して相異なる縦横比が設定された複数の矩形領域を用意し、原稿の傾きに基づいて選択された矩形領域を格納単位として画像をメモリに格納し、格納単位ごとにバースト読み出しを行って、読み出した画像に対して回転処理を含む画像処理を行うことが開示されている。
特許文献2には、記憶手段から、ブロック単位で画像データを読み出すデータ転送手段と、データ転送手段により読み出した画像データに対する回転処理を実行する傾き補正手段とを備え、傾き補正手段は、原稿の傾き角度と、傾き補正手段からデータを転送する際のバースト長とに基づき、ブロック間で重複する部分の長さを算出することが開示されている。
ここで、傾き補正が行われる場合、傾きが補正された後の出力画素に対する主走査方向の行は、補正前の画像の行方向に対して一定の角度でずれる。そのため、傾き補正を行うためにメモリから画像を読み出す際にバースト転送を行う場合、画像の傾きに応じて、画像以外の領域を転送したり、重複して読み取られる領域が生じたりする。
特開2015−201677号公報 特開2015−198425号公報
従来、傾きのある画像に対してバースト転送によるメモリからの読み出しを行う場合、画像以外の領域を転送したり、重複して読み取られる領域が生じたりすることにより、無用な画素値の読み出しが生じていた。バースト転送により読み出す領域を調整することにより無用な画素値の読み出しを抑制するとしても、画像の傾き(回転角度)に応じて無用な画素値の読み出しを抑制する度合いが大きく異なるため、様々な画像の傾きに対して汎用的に用いることが困難であった。
本発明は、傾き補正処理を行うためのメモリからの画像の読み出しにおいて、無用な画素値の読み出しを抑制し、データ転送効率の向上を図ることを目的とする。
本発明の請求項1に係る画像処理装置は、
画像データを保持する第1の記憶手段と、
前記第1の記憶手段から予め定められた大きさの領域ごとに画像データを読み出して転送する転送手段と、
前記転送手段により転送された前記領域ごとの画像データを保持する、任意のアドレスごとの読み出しが可能な第2の記憶手段と、
前記第2の記憶手段から画像データを読み出し、読み出した画像に対して画像を回転する処理を行う処理手段と、を備え、
前記転送手段は、前記第2の記憶手段の記憶容量に基づいて設定された処理単位領域を含む領域であって、DMA(Direct Memory Access)転送におけるデータの転送開始位置のアライメントの制約に基づいて当該領域自身の転送開始位置が設定されると共に、前記画像データにおける画素の読み出し方向の画素数により特定される当該領域のサイズをバースト転送におけるバースト長に応じて拡大することにより得られる領域である転送単位領域ごとに、前記第1の記憶手段から画像データを読み出して前記第2の記憶手段に転送し、
前記処理手段は、前記第2の記憶手段に保持された前記処理単位領域の画像に対して画像処理を行うことを特徴とする、画像処理装置である。
請求項に係る画像処理装置は、
前記第2の記憶手段は、SRAM(Static Random Access Memory)であることを特徴とする、請求項1に記載の画像処理装置である。
請求項に係る画像処理装置は、
画像データを保持するDRAM(Dynamic Random Access Memory)と、
前記DRAMから予め定められた大きさの領域ごとにバースト転送による画像データの転送を行う転送手段と、
前記転送手段により転送された前記領域ごとの画像データを保持するSRAM(Static Random Access Memory)と、
前記SRAMから画像データを読み出し、読み出した画像に対して画像を回転する処理を行う処理手段と、を備え、
前記転送手段は、前記SRAMの記憶容量に基づいて設定された処理単位領域を含む領域であって、DMA(Direct Memory Access)転送におけるデータの転送開始位置のアライメントの制約に基づいて当該領域自身の転送開始位置が設定されると共に、前記画像データにおける画素の読み出し方向の画素数により特定される当該領域のサイズを前記バースト転送におけるバースト長に応じて拡大することにより得られる領域である転送単位領域ごとに、前記DRAMから画像データを読み出して前記SRAMに転送し、
前記処理手段は、前記SRAMに保持された前記処理単位領域の画像に対して画像処理を行うことを特徴とする、画像処理装置である。
請求項に係る画像処理方法は、
DMAC(Direct Memory Access Controller)が、画像データを保持するDRAM(Dynamic Random Access Memory)から予め定められた大きさの領域ごとに画像データを読み出してSRAM(Static Random Access Memory)へ転送するステップと、
CPU(Central Processing Unit)が、前記SRAMから画像データを読み出し、読み出した画像に対して画像を回転する処理を行うステップと、を含み、
前記画像データを転送するステップにおいて、前記SRAMの記憶容量に基づいて設定された処理単位領域を含む領域であって、DMA転送におけるデータの転送開始位置のアライメントの制約に基づいて当該領域自身の転送開始位置が設定されると共に、前記画像データにおける画素の読み出し方向の画素数により特定される当該領域のサイズをバースト転送におけるバースト長に応じて拡大することにより得られる領域である転送単位領域ごとに、前記DRAMから画像データを読み出して前記SRAMに転送し、
前記画像を回転する処理を行うステップにおいて、前記SRAMに保持された前記処理単位領域の画像に対して処理を行うことを特徴とする、画像処理方法である。
請求項に係るプログラムは、
コンピュータに、
画像データを保持するDRAM(Dynamic Random Access Memory)から予め定められた大きさの領域ごとに画像データを読み出してSRAM(Static Random Access Memory)へ転送する処理と、
前記SRAMから画像データを読み出し、読み出した画像に対して画像を回転して傾き補正する処理と、を実行させ、
前記画像データを転送する処理において、前記コンピュータに、前記SRAMの記憶容量に基づいて設定された処理単位領域を含む領域であって、DMA(Direct Memory Access)転送におけるデータの転送開始位置のアライメントの制約に基づいて当該領域自身の転送開始位置が設定されると共に、前記画像データにおける画素の読み出し方向の画素数により特定される当該領域のサイズをバースト転送におけるバースト長に応じて拡大することにより得られる領域である転送単位領域ごとに、前記DRAMから画像データを読み出して前記SRAMに転送させ、
前記画像を回転して傾き補正する処理において、前記コンピュータに、前記SRAMに保持された前記処理単位領域の画像に対して処理を実行させることを特徴とする、プログラムである。
請求項1の発明によれば、処理単位領域とは別に転送単位領域とを設定して行うDMA転送において、転送単位領域の転送開始位置を処理単位領域の位置のみに基づいて特定する場合と比較して、DMA転送を効率よく実行することができる。
請求項2の発明によれば、データの転送先の記憶手段としてSRAMを用いることにより、アドレス単位でデータにアクセスし、無駄な画素値の読み出しを削減することができる。
請求項3の発明によれば、処理単位領域とは別に転送単位領域とを設定して行うDRAMからSRAMへのDMA転送において、転送単位領域の転送開始位置を転送先であるSRAMの記憶容量に基づいて設定された処理単位領域の位置のみに基づいて特定する場合と比較して、DMA転送を効率よく実行することができる。
請求項4の発明によれば、処理単位領域とは別に転送単位領域とを設定して行うDRAMからSRAMへのDMA転送において、転送単位領域の転送開始位置を転送先であるSRAMの記憶容量に基づいて設定された処理単位領域の位置のみに基づいて特定する方法と比較して、DMA転送を効率よく実行することができる。
請求項5の発明によれば、本発明のプログラムを実行することにより、処理単位領域とは別に転送単位領域とを設定して行うDRAMからSRAMへのDMA転送において、転送単位領域の転送開始位置を転送先であるSRAMの記憶容量に基づいて設定された処理単位領域の位置のみに基づいて特定する場合と比較して、DMA転送を効率よく実行することができる。
本実施形態による画像処理装置の機能構成を示す図である。 画像処理装置の一例としての複合機の機能構成を示す図である。 対象画像のブロックを示す図であり、図3(A)は、対象画像に設定される1番目のブロックを示す図、図3(B)は、2番目以降のブロックによる1列分のブロック列を示す図、図3(C)は、対象画像全体に設定されたブロックを示す図である。 バースト転送で画像を読み出す方向に対して対象画像が傾いている場合における、読み出し制御部による画像の読み出し方法を示す図であり、図4(A)は、図3に示したブロック#00を読み出す様子を示す図、図4(B)は、図3に示したブロック#01を読み出す様子を示す図である。 隣接する二つのブロックに係る二つのタイルの位置関係を示す図であり、図5(A)は、主走査方向に隣接するブロックに係る二つのタイルの位置関係を示す図である。図5(B)は、副走査方向に隣接するブロックに係る二つのタイルの位置関係を示す図である。 傾いた対象画像の各画素の位置を示す図である。 画素値の補間処理を説明する図である。 タイルを拡大する様子を示す図であり、図8(A)は、図6に示したように設定されたタイルを示す図、図8(B)は、図8(A)に示すタイルを拡大した図である。 本実施形態の画像処理装置による画像処理方法を示すフローチャートである。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
<本実施形態の画像処理装置の構成>
図1は、本実施形態による画像処理装置の機能構成を示す図である。図1に示すように、本実施形態の画像処理装置100は、第1記憶部10と、読み出し制御部20と、第2記憶部30と、補正処理部40と、書き込み制御部50とを備える。
第1記憶部10は、処理対象の画像(以下、対象画像)および補正処理部40により処理された対象画像を保持する第1の記憶手段である。第1記憶部10としては、対象画像全体を保持し得る記憶容量を有する記憶装置が用いられ、例えば、DRAM(Dynamic Random Access Memory)が用いられる。
読み出し制御部20は、第1記憶部10から画像のデータを読み出して第2記憶部30へ転送する転送手段である。読み出し制御部20は、例えば、図1に示すように、読み出そうとするデータが格納された第1記憶部10のアドレスを生成するアドレス生成回路21と、DMAC(Direct Memory Access Controller)22とにより実現される。本実施形態の読み出し制御部20は、予め定められた大きさの領域を基準として画像を読み出して転送する。また、読み出し制御部20は、バースト転送により画像を転送する。読み出し制御部20による画像の読み出しの詳細については後述する。
第2記憶部30は、補正処理部40による補正処理の対象として読み出し制御部20により読み出された画像を保持する第2の記憶手段である。第2記憶部30としては、アドレス単位でランダムアクセスが可能な記憶装置が用いられ、例えば、SRAM(Static Random Access Memory)が用いられる。
補正処理部40は、第2記憶部30に保持された画像に対して画像を回転する処理(傾き補正処理)を含む画像処理を行う処理手段である。補正処理部40の機能は、例えば、CPU(Central Processing Unit)がプログラムを実行することにより実現される。補正処理部40による補正の詳細については後述する。
書き込み制御部50は、補正処理部40により補正された画像を第1記憶部10に書き込む出力手段である。書き込み制御部50は、例えば、図1に示すように、第1記憶部10の書き込み先のアドレスを生成するアドレス生成回路51と、DMAC52とにより実現される。
上記の構成では、対象画像が第1記憶部10に格納されているものとして説明したが、第1記憶部10に格納される画像を入力するための入力手段を備え、入力手段により入力された画像が第1記憶部10に格納される構成としても良い。画像の入力手段としては、光学的に画像を読み取る読み取り装置(スキャナ)を設けても良いし、ネットワーク・インターフェイスを備え、ネットワークを介して外部装置(図示せず)から受信する構成としても良い。一例として、複写機能、画像読み取り機能、印刷機能、FAX通信機能などを有する複合機を画像処理装置100として用いた場合について説明する。
<画像処理装置の適用例>
図2は、画像処理装置100の一例としての複合機の機能構成を示す図である。図2に示す構成において、画像処理装置100は、制御部60を構成するCPU(Central Processing Unit)102と、ROM(Read Only Memory)103と、RAM(Random Access Memory)104とを備える。また、画像処理装置100は、記憶部105と、操作部106と、表示部107と、画像読み取り部108と、画像形成部109と、通信部110と、画像処理部111とを備える。これらの各機能部は、バス101に接続され、このバス101を介してデータの授受を行う。
操作部106は、ユーザ(使用者)の操作を受け付ける。操作部106は、例えば、ハードウェアキーにより構成される。また、例えば、押圧された位置に応じた制御信号を出力するタッチセンサにより構成される。タッチセンサと後述の表示部107を構成する液晶ディスプレイとを組み合わせたタッチパネルとして構成しても良い。
表示部107は、表示手段の一例であり、例えば液晶ディスプレイにより構成される。この表示部107は、CPU102の制御の下、画像処理装置100に関する情報を表示する。また、表示部107は、ユーザが画像処理装置100を操作する際にユーザが参照するメニュー画面を表示する。すなわち、上記の操作部106と表示部107とを組み合わせて、画像処理装置100のユーザインタフェース部として機能する。
画像読み取り部108は、いわゆるスキャナ装置により構成され、セットされた原稿上の画像を光学的に読み取り、読み取り画像(画像データ)を生成する。画像の読み取り方式としては、例えば、光源から原稿に照射した光に対する反射光をレンズで縮小してCCD(Charge Coupled Devices)で受光するCCD方式や、LED(Light Emitting Diode)光源から原稿に順に照射した光に対する反射光をCIS(Contact Image Sensor)で受光するCIS方式が用いられる。
画像形成部109は、画像形成手段の一例であり、記録材の一例である用紙に対して、画像形成材を用いて画像データに基づく画像を形成する。記録材に画像を形成する方式としては、例えば、感光体に付着させたトナーを記録材に転写して像を形成する電子写真方式や、インクを記録材上に吐出して像を形成するインクジェット方式等が用いられる。
通信部110は、ネットワーク300を介して外部装置に接続するためのネットワーク・インターフェイスを有している。また、特に区別して記載しないが、画像処理装置100がファクシミリ機能を有する場合は、通信部110は、ファクシミリによる送受信を行うための電話回線への接続機能も有している。
画像処理部111は、演算手段であるプロセッサと作業用メモリとを備え、画像データが表す画像に色補正や階調補正等の画像処理を施す。特に図示しないが、画像処理部111には、作業用メモリとして、対象画像を保持するメモリ(例えばDRAM)と、処理を実行する際に用いられるバッファメモリ(例えばSRAM)とが設けられる。そして、画像処理部111には、これらのメモリ間でデータを直接やり取りする(DMA)ためのアドレス生成回路およびDMACが設けられる。なお、CPU102と画像処理部111のプロセッサをSystem−on−Chip(SoC)で構成する場合には、RAM104を作業用メモリとして兼用する構成としても良い。さらには、CPU102を画像処理部111のプロセッサと兼用させ、RAM104を作業用メモリとして兼用しても良い。
記憶部105は、記憶手段の一例であり、例えば、ハードディスク装置などの記憶装置により構成される。記憶部105は、画像読み取り部108にて生成された読み取り画像等の画像データを記憶する。
制御部60を構成するCPU102、ROM103およびRAM104において、ROM103は、CPU102により実行されるプログラムを記憶する。CPU102は、ROM103に記憶されているプログラムを読み出し、RAM104を作業エリアにして、プログラムを実行する。また、記憶部105に格納されたプログラムをRAM104に読み込んで、RAM104に読み込んだプログラムをCPU102が実行するようにしても良い。
ここで、CPU102によって実行されるプログラムは、磁気記録媒体(磁気ディスクなど)、光記録媒体(光ディスクなど)、半導体メモリなどのコンピュータが読取可能な記録媒体に記憶した状態で、画像処理装置100へ提供し得る。また、CPU102によって実行されるプログラムは、インターネットなどのネットワークを介して画像処理装置100に提供するようにしても良い。
図2に示した複合機において、画像処理部111により画像処理装置100の機能が実現される。すなわち、画像処理部111の作業用メモリにより第1記憶部10および第2記憶部30が実現され、画像処理部111のプロセッサにより補正処理部40が実現される。また、上述したように画像処理部111のプロセッサおよび作業メモリとして制御部60のCPU102およびRAM104が兼用される場合、図1に示した第1記憶部10としてRAM104を、第2記憶部30としてCPUのキャッシュメモリ(図示せず)を、補正処理部40としてCPU102を、それぞれ用いても良い。また、図2に示した複合機において、対象画像を入力するための入力手段として、画像読み取り部108を用いても良い。
<画像の処理単位>
ここで、対象画像の処理単位について説明する。本実施形態では、第1記憶部10に保持された対象画像の読み出し、補正処理部40による対象画像の補正処理、第1記憶部10への対象画像の書き込みは、対象画像を区画する予め定められたサイズのブロック(矩形領域)ごとに行われる。すなわち、1ブロックは、第1記憶部10からの対象画像の読み出し単位であり、補正処理単位であり、第1記憶部10への対象画像の書き込み単位である。
図3は、対象画像のブロック(処理単位領域)を示す図である。図3(A)は、対象画像に設定される1番目のブロックを示す図、図3(B)は、2番目以降のブロックによる1列分のブロック列を示す図、図3(C)は、対象画像全体に設定されたブロックを示す図である。図3に示す例では、対象画像TIの左上端に1番目のブロック#00が設定されている(図3(A)参照)。そして、2番目以降のブロック(#01〜)によるブロック列が、ブロック#00の右隣から対象画像TIの右上端まで、順次右方向へ並ぶ(図3(B)参照)。さらに、この1段目のブロック列の下段に、2段目のブロック列(#10〜)が、ブロック#00の直下から右方向へ並んで設定され、同様に対象画像TIの下端まで、順次下方へ同様のブロック列が並ぶ(図3(C)参照)。この1列のブロック列における各ブロックが並ぶ方向を主走査方向とし、各ブロック列が並ぶ方向を副走査方向とする。本実施形態において、対象画像TIの読み出し、補正処理、書き込みは、上記の順番(すなわち、各ブロック列を左端から右端へ進み、かつ、上端のブロック列から下端のブロック列へ進んで、左上端のブロックから右下端のブロックへ到達する順番)で行われるものとする。なお、上記の説明における各ブロックの設定および処理の順番は例示に過ぎず、上記の順番には限定されない。
本実施形態において、1ブロックのサイズは、バースト転送におけるバースト長および第2記憶部30の記憶容量に基づいて定まる。ただし、対象画像TIのブロック列に沿う方向の辺のサイズがブロックの同方向の辺のサイズの整数倍でない場合、各列の左端のブロックに含まれる部分画像は、その部分画像の同方向のサイズがブロックの同方向の辺のサイズよりも小さくなる。また、対象画像TIのブロック列と交差する方向の辺のサイズがブロックの同方向の辺のサイズの整数倍でない場合、下端のブロック列における各ブロックに含まれる部分画像は、その部分画像における同方向のサイズがブロックの同方向の辺のサイズよりも小さくなる。なお、上記のように、対象画像TIの辺のサイズがブロックの辺のサイズの整数倍でない場合に、各列の左端のブロックや下端のブロック列における各ブロック自体を、対象画像TIのサイズに合わせたサイズの小さいブロックとして調整しても良い。
<画像の読み出し処理>
次に、読み出し制御部20による画像の読み出し処理について説明する。本実施形態において、読み出し制御部20は、第1記憶部10に保持された対象画像を、上記のブロック単位で、上述した順番で読み出す。このとき、バースト転送で画像を読み出す方向に対して対象画像TIが傾いていなければ、各ブロックに対応する領域ごとに対象画像TIを読んでいけば良い。一方、バースト転送で画像を読み出す方向に対して対象画像TIが傾いている場合は、この傾きのために、ブロックごとに画像を読み出すためには、ブロックを包含する、より大きい領域(以下、この領域をタイルと呼ぶ)単位で画像を読み出すことが必要である。転送単位領域としてのタイルは、ブロックが外接し、バースト転送で画像を読み出す方向に対して傾いていない辺を有する矩形領域である。なお、対象画像TIが傾いているか否かの判断は、既存の種々の手法によって行って良い。例えば、対象画像TIが、図2に示した画像処理装置100の画像読み取り部108により用紙に形成された画像を読み取って得られる場合は、画像読み取り部108に用紙が置かれた状態を認識するためのセンサを設けておき、読み取りの際に用紙の傾きを検知し、対象画像TIの傾きとして判断しても良い。また、用紙に形成された画像を解析して対象画像TIの傾きを検出しても良い。
図4は、バースト転送で画像を読み出す方向に対して対象画像TIが傾いている場合における、読み出し制御部20による画像の読み出し方法を示す図である。図4(A)は、図3に示したブロック#00を読み出す様子を示す図、図4(B)は、図3に示したブロック#01を読み出す様子を示す図である。図4に示す例において、領域SAは、第1記憶部10における画像の格納領域を示す。この領域SAには直交座標が設定されており(図示の例ではX−Y座標)、直交座標の一方の軸は、バースト転送で画像を読み出す方向と一致している。また、図4に示す例において、領域SA内に格納された対象画像TIは、左に角度θ傾いた(回転した)状態となっている。領域SAの座標系による対象画像TIの各ブロックの位置は、アフィン変換を用いた計算により算出される。
図4(A)に示すように、傾いた対象画像TIのブロック#00を読み出す際には、ブロック#00を包含するタイルの範囲の画像が読み出される。同様に、図4(B)に示すように、ブロック#01を読み出す際には、ブロック#01を包含するタイルの範囲の画像が読み出される。以下、ブロック#00を包含するタイルをタイル#00と呼び、ブロック#01を包含するタイルをタイル#01と呼ぶ。図4(B)を参照すると、領域SAに対する対象画像TIの傾きのために、ブロック#00を包含するタイル#00とブロック#01を包含するタイル#01とは、一部が重なっている。
図5は、隣接する二つのブロックに係る二つのタイルの位置関係を示す図である。図5(A)は、主走査方向に隣接するブロック(ブロック#00とブロック#01)に係る二つのタイル(タイル#00とタイル#01)の位置関係を示す図である。図5(B)は、副走査方向に隣接するブロック(ブロック#00とブロック#10)に係る二つのタイル(タイル#00とタイル#10)の位置関係を示す図である。図5に示す例において、タイルの左上角(黒丸で示した位置)を、タイル間の位置関係を特定するための基準位置とする。
図5(A)を参照すると、主走査方向に隣接するブロックに係る二つのタイルの基準位置の間隔は、領域SAに設定された直交座標(X−Y座標)において、座標軸Xに沿ってΔX1、座標軸Yに沿ってΔY1となる。ここで、対象画像TIは領域SAに対して角度θだけ回転しているので、各ブロックの主走査方向のサイズをnとすると、ΔX1=n×cosθ、ΔY1=n×sinθである。同様に、図5(B)を参照すると、副走査方向に隣接するブロックに係る二つのタイルの基準位置の間隔は、座標軸Xに沿ってΔX2、座標軸Yに沿ってΔY2となる。そして、各ブロックの副走査方向のサイズをmとすると、ΔX2=m×sinθ、ΔY2=m×cosθである。このため、図5(A)(B)に示すように、タイル#00とタイル#01およびタイル#00とタイル#10は、各々一部が重なっている。
したがって、ブロックごとに対象画像TIを読み出す場合、読み出し制御部20は、まず、タイルを{ΔX1,ΔY1}ずつ移動しながら主走査方向の走査を行い、1列分のブロックの走査が完了するたびに、タイルを{ΔX2,ΔY2}ずつ移動して副走査方向の走査を行う。
次に、タイルのサイズおよびタイルに包含されるブロックにおける対象画像TIの画素値について説明する。対象画像TIがバースト転送で画像を読み出す方向に対して(領域SAの座標系に対して)傾いている場合の領域SAの座標系による対象画像TIの各画素の位置は、アフィン変換を用いた計算により算出される。ここで、対象画像TIが傾いていない場合の各画素の位置が、領域SAの座標系における整数値の座標位置に対応するものとする。すると、アフィン変換により算出された各画素の座標値は、通常、小数を含む値となる。
図6は、領域SAの座標系において、傾いた対象画像TIの各画素の位置を示す図である。図6において、白丸は、領域SAに格納されている画像における実際の画素の位置を示す。また、各白丸の位置は、領域SAの座標系における整数値の座標位置である。そして、この白丸の位置は、対象画像TIが傾いていない場合の各画素の位置に一致する。また、図6において、黒丸は、対象画像TIが傾いていない状態でブロックに含まれる各画素(仮想的な画素)に関して、対象画像TIが傾いている状態での位置を示したものである。言い換えれば、図6においては、対象画像TIの一つのブロックが、黒丸の集合で示されている。図6において黒丸で示された仮想的な画素は、傾き補正が行われた後に、図6において白丸で示されたいずれかの画素の位置に重なり、補正後のブロックを構成する画素となる。領域SAの座標系における黒丸の座標値は小数を含む値であるので、図示のように、黒丸の位置は、白丸の位置(整数の座標値の位置)からずれている。なお、黒丸の位置は、対象画像TIの傾きの角度に応じて異なるものであり、図6に示す位置は例示に過ぎない。
図6に示したように、対象画像TIが傾いている場合、黒丸(ブロックにおける仮想的な画素)の位置は、白丸(領域SAの座標系における整数値の座標位置)と一致しない。そこで、各黒丸で示される画素の画素値は、例えば、領域SAに格納された画像(傾いている対象画像TI)における実際の画素の画素値を用いた補間演算により求める。
図7は、画素値の補間処理を説明する図である。図7において黒丸で示した画素Pxxの画素値は、その周囲の4つの画素P00、P01、P10、P11の画素値を用い、画素Pxxと周囲の4画素との間の距離を重み付け係数とした補間演算により得られる。具体的には、画素Pxxの位置を、領域SAの座標軸を用い、画素P00の位置を基準としてX方向にΔx、Y方向にΔyとする。また、画素P00、P01、P10、P11を結ぶ正方形の1辺の長さを1とする。そして、画素値を各画素の符号で示す。すると、画素Pxxの画素値「Pxx」は、下記の式で得られる。

Pxx = (P00 ×(1 - Δx)+ P01 × Δx)×(1 - Δy)+(P10 ×(1 - Δx)+ P11 × Δx)× Δy

なお、補間処理の手法は、本手法に限定されず、既存の種々の方法を適用して良い。
ところで、画像を読み出す単位であるタイルに関して、対象画像TIのブロックが外接することを上述した。図6において、ブロックとして示される黒丸画素の集合に外接する矩形は、一点鎖線で示されている。しかし、上述したように、黒丸画素の画素値を求めるには、その周囲の白丸画素の画素値が必要である。したがって、ブロックにおける最も外側(すなわち、矩形のブロックの4つの角)に位置する黒丸画素のさらに外側に隣接する白丸画素までを含む範囲(実線で示された矩形)が、画像を読み出す単位としてのタイルとなる。図示の例では、8画素×8画素の黒丸画素の集合であるブロックを包含するタイルとして、10画素×10画素のサイズのタイルが設定されている。
以上のようにしてタイルのサイズが特定されたが、実際にデータが転送される際には、必要に応じて、さらにタイルのサイズが調整(拡大)される。本実施形態において、読み出し制御部20(図1参照)は、DMA転送により第1記憶部10から第2記憶部30へ転送するとした。ここで、DMA転送では、転送を実行するDMAC22の仕様によっては、転送の開始アドレスのアライメントに制約があったり、特定のアライメント位置にないと転送効率が低下したりする場合がある。そこで、本実施形態では、DMA転送における仕様に基づき画像(タイル)の転送の開始位置を調整して、転送効率の低下を抑制する。また、本実施形態では、画像の転送をバースト転送により行うこととした。したがって、転送されるデータが、バースト長に応じたデータ量となるようにタイルのサイズを調整することで、転送効率を向上させることができる。
図8は、タイルを拡大する様子を示す図である。図8(A)は、図6に示したように設定されたタイルを示す図、図8(B)は、図8(A)に示すタイルを拡大した図である。図8(A)において、タイルTは、ブロックBを包含する。図6を参照して説明したように、タイルTには、ブロックBを構成する仮想的な画素の画素値を計算するために必要な全ての画素が含まれる。また、図8(A)において、タイルTの左上に記載した矢印(三角形)は、転送開始位置を示している。すなわち、読み出し制御部20は、タイルTを読み出す際、タイルTの左上角の画素を先頭として右上角の画素までの一列(ライン)を読み込んで転送し、左下角の画素を先頭として右下角の画素までの一列に至るまで、一列ずつ順に読み込んで転送する。
図8(A)に示した転送開始位置からDMA転送を開始すると転送効率が低下する場合は、図8(B)に示すように、タイルを拡大して転送開始位置が変更される。例えば、DMAC22により転送開始位置のアドレスが数値「16」の倍数に限定されるものとする。この場合、タイルの各ラインの先頭位置(図8(A)のタイルにおいて矢印で示した左辺)のアドレスに対して、下位4ビットを0にマスクする。これにより、アドレスの値が数値「16」の倍数となり、タイルの各ラインの先頭位置が、図8(B)に示すように移動する。
また、タイルTの画素列(ライン)の読み込みはバースト長ごとに行われるので、転送開始位置を移動させたタイルTのラインの長さ(画素数)がバースト長の整数倍でない場合は、バースト長の整数倍となるようにラインの長さを調整する。すなわち、図8(B)に示すように、ラインの終端位置を移動させる。これにより、タイルTは、読み出し制御部20が画素列を読み込む方向に沿って、サイズが拡大する。読み出し制御部20は、この拡大されたタイルT単位で第1記憶部10から画像を読み出し、第2記憶部30へ転送する。
なお、上記のタイルTの拡大において、転送開始位置の移動は、図8(A)に示す元のタイルTにおけるラインの先頭位置のアドレスに応じて行われる。したがって、転送開始位置の移動量は、タイルTごとに個別に決まる。また、ラインの終端位置は、移動後の先頭位置からの長さがバースト長の整数倍となるように定められる。したがって、この終端位置の移動量も、タイルTごとに個別に決まる。
<傾き補正処理>
次に、補正処理部40による傾き補正処理について説明する。補正処理部40は、第2記憶部30に転送された1ブロックの画像を読み出して傾き補正を行う。具体的には、ブロックを構成する画素(図6および図7において黒丸で示した仮想的な画素)ごとに、画素値および第2記憶部30のメモリ空間における傾き補正後のアドレスを計算し、計算結果に基づいて、補正後の各画素を第2記憶部30に書き込む。各画素の画素値は、図6および図7を参照して説明したように、各画素の画素値の補間に必要な周囲の画素(図6および図7において白丸で示した実際の画素)の画素値を用いて補間演算により求める。傾き補正後のアドレスは、例えば、読み出し制御部20が第1記憶部10からブロック(タイル)を読み出す際にブロックの位置を求めるために用いたアフィン変換の逆変換により求める。第2記憶部30は、アドレス単位でランダムアクセスが可能であるので、ブロックを構成する画素ごとに、個別に上記の処理を行うことができる。
1ブロック分の各画素に対し、上記のようにして画素値の計算およびアドレス変換が完了すると、第2記憶部30には、傾きが補正されたブロックの画像が格納されることになる。この後、書き込み制御部50が、第2記憶部30に保持された傾き補正後のブロックの画像を読み出し、第1記憶部10へ転送する。このとき、データの転送は、DMA転送で行われ、またバースト転送で行われる。したがって、読み出し制御部20による画像の読み出しの際と同様に、第1記憶部10へ書き込む際の書き込みアドレスの開始位置および転送する1ライン分の画素列の長さを調整してもよい。
以上の処理が、対象画像TIを構成する全てのブロックに対して行われると、対象画像TIの傾き補正が完了する。以上のように、本実施形態では、第2記憶部30の記憶容量に基づいて設定されるサイズのブロックを基準とし、このブロックを包含するタイル単位で、対象画像TIが第1記憶部10から第2記憶部30へバースト転送される。そして、アドレス単位でランダムアクセスが可能な第2記憶部30に格納されたブロックの画像に対して傾き補正処理が行われる。したがって、本実施形態では、タイル単位でのデータ転送においてのみバースト転送が行われる。このため、傾き補正処理のために傾いた画像をバースト転送する際に生じる読み出しデータの重複は、タイルどうしが重なる部分のみとなり、処理対象の画像全体をバースト転送により転送する場合よりも小さくなる。
図9は、本実施形態の画像処理装置による画像処理方法を示すフローチャートである。ここでは、第1記憶部10としてDRAMが用いられ、第2記憶部30としてSRAMが用いられたものとして説明する。本実施形態において、画像処理装置100は、第1記憶部10であるDRAMに格納された対象画像に対し、傾き補正処理を行う。画像処理装置100の読み出し制御部20は、第1記憶部10であるDRAMから、予め定められたブロックを包含するタイルごとに画像データを読み出し、第2記憶部30であるSRAMへ転送する(S901)。ここで、転送は、バースト転送により行われ、DMA転送により行われる。したがって、タイルのサイズは、ブロックに外接するように設定されるが、実際に転送される際には、DMA転送による転送効率を向上させるために転送開始位置を調整し、バースト長に応じて拡大される。なお、読み出し制御部20による上記の処理は、DMACとしてのプロセッサがプログラムを実行することにより実現される。
次に、画像処理装置100の補正処理部40は、第2記憶部30であるSRAMから画像データを読み出し、読み出した画像に対して傾き補正処理(画像を回転する処理)を行う(S902)。ここで、SRAMに対しては、アドレス単位でランダムアクセスが可能であるので、補正処理部40は、画素単位で画像データを読み出し、傾き補正処理としての補間処理およびアドレス変換処理を行って、第2記憶部30に書き込む。なお、補正処理部40による上記の処理は、CPUがプログラムを実行することにより実現される。
次に、画像処理装置100の書き込み制御部50は、第2記憶部30であるSRAMから補正後のブロックの画像データを読み出し、第1記憶部10であるDRAMにおいて補正後の対象画像を格納するように設定された記憶領域に書き込む(S903)。この転送は、読み出し制御部20によるS901の転送と同様に、バースト転送により行われ、DMA転送により行われる。
<変形例>
本実施形態において、第2記憶部30の記憶容量とブロックのデータサイズとの関係を、2タイル分のデータ転送が可能となるようにして、データ転送を並列に行うようにしても良い。この場合、1ブロック分の画素の補間処理を行っている間に、他の1ブロック分のデータ転送を行うこと(いわゆるピンポンバッファ)により、処理の実行効率を向上させ、処理速度を向上させることができる。
10…第1記憶部、20…読み出し制御部、30…第2記憶部、40…補正処理部、50…書き込み制御部、100…画像処理装置

Claims (5)

  1. 画像データを保持する第1の記憶手段と、
    前記第1の記憶手段から予め定められた大きさの領域ごとに画像データを読み出して転送する転送手段と、
    前記転送手段により転送された前記領域ごとの画像データを保持する、任意のアドレスごとの読み出しが可能な第2の記憶手段と、
    前記第2の記憶手段から画像データを読み出し、読み出した画像に対して画像を回転する処理を行う処理手段と、を備え、
    前記転送手段は、前記第2の記憶手段の記憶容量に基づいて設定された処理単位領域を含む領域であって、DMA(Direct Memory Access)転送におけるデータの転送開始位置のアライメントの制約に基づいて当該領域自身の転送開始位置が設定されると共に、前記画像データにおける画素の読み出し方向の画素数により特定される当該領域のサイズをバースト転送におけるバースト長に応じて拡大することにより得られる領域である転送単位領域ごとに、前記第1の記憶手段から画像データを読み出して前記第2の記憶手段に転送し、
    前記処理手段は、前記第2の記憶手段に保持された前記処理単位領域の画像に対して画像処理を行うことを特徴とする、画像処理装置。
  2. 前記第2の記憶手段は、SRAM(Static Random Access Memory)であることを特徴とする、請求項1に記載の画像処理装置。
  3. 画像データを保持するDRAM(Dynamic Random Access Memory)と、
    前記DRAMから予め定められた大きさの領域ごとにバースト転送による画像データの転送を行う転送手段と、
    前記転送手段により転送された前記領域ごとの画像データを保持するSRAM(Static Random Access Memory)と、
    前記SRAMから画像データを読み出し、読み出した画像に対して画像を回転する処理を行う処理手段と、を備え、
    前記転送手段は、前記SRAMの記憶容量に基づいて設定された処理単位領域を含む領域であって、DMA(Direct Memory Access)転送におけるデータの転送開始位置のアライメントの制約に基づいて当該領域自身の転送開始位置が設定されると共に、前記画像データにおける画素の読み出し方向の画素数により特定される当該領域のサイズを前記バースト転送におけるバースト長に応じて拡大することにより得られる領域である転送単位領域ごとに、前記DRAMから画像データを読み出して前記SRAMに転送し、
    前記処理手段は、前記SRAMに保持された前記処理単位領域の画像に対して画像処理を行うことを特徴とする、画像処理装置。
  4. DMAC(Direct Memory Access Controller)が、画像データを保持するDRAM(Dynamic Random Access Memory)から予め定められた大きさの領域ごとに画像データを読み出してSRAM(Static Random Access Memory)へ転送するステップと、
    CPU(Central Processing Unit)が、前記SRAMから画像データを読み出し、読み出した画像に対して画像を回転する処理を行うステップと、を含み、
    前記画像データを転送するステップにおいて、前記SRAMの記憶容量に基づいて設定された処理単位領域を含む領域であって、DMA転送におけるデータの転送開始位置のアライメントの制約に基づいて当該領域自身の転送開始位置が設定されると共に、前記画像データにおける画素の読み出し方向の画素数により特定される当該領域のサイズをバースト転送におけるバースト長に応じて拡大することにより得られる領域である転送単位領域ごとに、前記DRAMから画像データを読み出して前記SRAMに転送し、
    前記画像を回転する処理を行うステップにおいて、前記SRAMに保持された前記処理単位領域の画像に対して処理を行うことを特徴とする、画像処理方法。
  5. コンピュータに、
    画像データを保持するDRAM(Dynamic Random Access Memory)から予め定められた大きさの領域ごとに画像データを読み出してSRAM(Static Random Access Memory)へ転送する処理と、
    前記SRAMから画像データを読み出し、読み出した画像に対して画像を回転して傾き補正する処理と、を実行させ、
    前記画像データを転送する処理において、前記コンピュータに、前記SRAMの記憶容量に基づいて設定された処理単位領域を含む領域であって、DMA(Direct Memory Access)転送におけるデータの転送開始位置のアライメントの制約に基づいて当該領域自身の転送開始位置が設定されると共に、前記画像データにおける画素の読み出し方向の画素数により特定される当該領域のサイズをバースト転送におけるバースト長に応じて拡大することにより得られる領域である転送単位領域ごとに、前記DRAMから画像データを読み出して前記SRAMに転送させ、
    前記画像を回転して傾き補正する処理において、前記コンピュータに、前記SRAMに保持された前記処理単位領域の画像に対して処理を実行させることを特徴とする、プログラム。
JP2017054448A 2017-03-21 2017-03-21 画像処理装置、画像処理方法およびプログラム Active JP6859781B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017054448A JP6859781B2 (ja) 2017-03-21 2017-03-21 画像処理装置、画像処理方法およびプログラム
US15/785,850 US10419638B2 (en) 2017-03-21 2017-10-17 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017054448A JP6859781B2 (ja) 2017-03-21 2017-03-21 画像処理装置、画像処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2018157492A JP2018157492A (ja) 2018-10-04
JP6859781B2 true JP6859781B2 (ja) 2021-04-14

Family

ID=63583164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017054448A Active JP6859781B2 (ja) 2017-03-21 2017-03-21 画像処理装置、画像処理方法およびプログラム

Country Status (2)

Country Link
US (1) US10419638B2 (ja)
JP (1) JP6859781B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7234000B2 (ja) * 2019-03-27 2023-03-07 池上通信機株式会社 2次元画像をアフィン変換するための画像データ処理装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496278B1 (en) * 1998-12-02 2002-12-17 Ricoh Company, Ltd. Image forming apparatus and printer apparatus
JP2005109856A (ja) * 2003-09-30 2005-04-21 Canon Electronics Inc 画像回転回路及びそれを有する画像処理装置
JP2005352703A (ja) * 2004-06-09 2005-12-22 Fuji Xerox Co Ltd 画像処理装置
JP2006350843A (ja) * 2005-06-17 2006-12-28 Sharp Corp 画像処理装置、画像処理装置の制御プログラム、該制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4975288B2 (ja) * 2005-09-05 2012-07-11 ソニー株式会社 共有メモリ装置
JP5124509B2 (ja) * 2009-03-05 2013-01-23 株式会社Pfu 画像処理装置、傾き補正方法、および、プログラム
JP2010239362A (ja) * 2009-03-31 2010-10-21 Panasonic Corp 画像処理装置及びその画像処理方法
JP2011018248A (ja) * 2009-07-10 2011-01-27 Micro Engineering Co Ltd 画像処理ボード、画像処理装置、及び画像処理方法
JP5383416B2 (ja) * 2009-10-06 2014-01-08 キヤノン株式会社 画像処理装置及びその制御方法とプログラム
JP6230468B2 (ja) 2014-04-03 2017-11-15 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP6324174B2 (ja) 2014-04-04 2018-05-16 キヤノン株式会社 画像処理装置および画像処理方法
JP2016061896A (ja) * 2014-09-17 2016-04-25 株式会社リコー 書込み制御装置、画像形成装置、書込み制御方法及びプログラム
US10120573B2 (en) * 2015-09-14 2018-11-06 Microsoft Technology Licensing, Llc. Modular sequential writing of data to data storage devices

Also Published As

Publication number Publication date
US20180278799A1 (en) 2018-09-27
US10419638B2 (en) 2019-09-17
JP2018157492A (ja) 2018-10-04

Similar Documents

Publication Publication Date Title
KR101969965B1 (ko) 화상독취장치, 이미지 보정 방법 및 컴퓨터 판독가능 기록매체
US20120300265A1 (en) Scanning apparatus having image correction funciton
KR20100095382A (ko) 화상형성장치 및 이미지 모자이크 생성 방법
JP4082303B2 (ja) 画像補正装置
JP6859781B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP2009135887A (ja) 画像処理装置、画像処理方法及びプログラム
US20190158703A1 (en) Image forming apparatus, image forming method, and storage medium
JP5440577B2 (ja) 画像処理装置および画像処理方法
JP2001143062A (ja) ブロック転送を使用したイメージの回転型変換
JP6880654B2 (ja) 画像処理装置、画像形成装置、画像処理方法及び画像処理プログラム
CN103108101B (zh) 图像处理装置及图像处理方法
JP5947143B2 (ja) 魚眼画像の補正装置及び補正方法
JP5182587B2 (ja) 画像処理装置および画像処理方法
JP2006222878A (ja) 画像処理装置、画像処理方法、および画像処理プログラム
JP6398812B2 (ja) 画像処理装置、および、コンピュータプログラム
JP6354619B2 (ja) 画像処理装置、および、コンピュータプログラム
JP4504861B2 (ja) 画像処理方法及び画像処理装置
JP4158766B2 (ja) 画像処理装置および画像処理方法
JP6885135B2 (ja) 画像処理装置及びプログラム
JP2016178367A (ja) 画像処理装置、および、コンピュータプログラム
JP2012168372A (ja) 画像形成装置及び画像形成方法
JP2006295484A (ja) 画像形成装置、画像形成方法及び画像形成プログラム
JP3064305B2 (ja) ディジタル複写機
JP2005196659A (ja) 画像処理装置、プログラムおよび記録媒体
JP2013120985A (ja) アフィン変換装置及び画像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210309

R150 Certificate of patent or registration of utility model

Ref document number: 6859781

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350