JP6757141B2 - 画像処理装置、その制御方法、及びプログラム - Google Patents

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

Info

Publication number
JP6757141B2
JP6757141B2 JP2016007226A JP2016007226A JP6757141B2 JP 6757141 B2 JP6757141 B2 JP 6757141B2 JP 2016007226 A JP2016007226 A JP 2016007226A JP 2016007226 A JP2016007226 A JP 2016007226A JP 6757141 B2 JP6757141 B2 JP 6757141B2
Authority
JP
Japan
Prior art keywords
address
value
band
block
image processing
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
JP2016007226A
Other languages
English (en)
Other versions
JP2017129918A5 (ja
JP2017129918A (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 JP2016007226A priority Critical patent/JP6757141B2/ja
Priority to US15/403,488 priority patent/US10510135B2/en
Publication of JP2017129918A publication Critical patent/JP2017129918A/ja
Publication of JP2017129918A5 publication Critical patent/JP2017129918A5/ja
Application granted granted Critical
Publication of JP6757141B2 publication Critical patent/JP6757141B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Input (AREA)

Description

本発明は、複数の矩形画像と、ラスタ画像とを相互に変換する画像処理装置、その制御方法、及びプログラムに関する。
画像形成装置の撮像装置等の画像入力部や、光学走査装置等の画像出力(形成)部は、一般に、ラスタ走査順序で画像データを扱う。一方、画像入力部からの入力データに対するデジタル画像処理の多く、例えば、窓を用いたフィルタ処理、JPEG方式の圧縮符号化処理、濃度階調表現された入力画像を面積階調へと変換するスクリーン処理などは、矩形画像単位で処理がなされる。以下では、この矩形画像単位での処理をブロック処理と称し、ブロック処理で扱う矩形画像単位の画像順序をブロック順序と称する。
ラスタ順序の入力画像に対してブロック処理を行うためには、入力画像の画像データをブロック順序へと変換する前処理が必要となる。この前処理には通常、画像幅×ブロック高さの矩形領域(ブロック領域)の容量を持つラインメモリが用いられる。以下では、このラインメモリ容量分の画像単位をバンドと称し、ラインメモリをバンドメモリとも称する。ブロック処理を行う画像処理部をパイプラインで構成した場合、各々の画像処理部において、ラスタ順序をブロック順序に変換する前処理が必要となる。このため、ラインメモリが画像処理部の個数分だけ必要となり、回路規模が増大してしまう。ラインメモリの増大を抑制するためには、画像処理部へ画像を入力する前に、予めラスタ順序をブロック順序へ変換しておく必要がある。これにより、各画像処理部は入力画像を常にブロック順序として扱えばよく、ラインメモリを画像処理部の個数分用いる必要が無くなる。画像処理部から出力されたブロック順序の画像は、画像形成部へ出力するために、再度ラスタ順序へと変換される。
画像処理部の前処理、後処理で必要となるラスタ順序及びブロック順序の相互変換には、画像幅とブロック高さとから求まる矩形領域の容量を持つラインメモリを2つ用いる、ダブルバッファ方式がよく知られている。ダブルバッファ方式では、順序変換前の画像データを一方のラインメモリへ書き込み中に、順序変換後の画像データを他方のラインメモリから読み出すことで、スループットの低下を抑制しながらも変換処理を行うことが可能である。しかし、ダブルバッファ方式では、必要となるラインメモリ容量が多く、回路規模の増大につながるという問題がある。この問題を解消するために、変換前画像データの書き込みと変換後画像データの読み出しを多重化させることで、ラインメモリが1つのみの構成であっても変換を可能とする、シングルバッファ方式が知られている。特許文献1には、シングルバッファ方式におけるアドレス計算を実現する方法が開示されている。
特開2008−112435号公報
しかしながら、上記従来技術には以下に記載する課題がある。シングルバッファ方式では、画素の読み出しが完了したラインメモリのアドレスへ、次の画素の書き込みを逐次行うことで、ダブルバッファ方式に比べて半分のラインメモリ容量で変換処理が実現できる。しかし、シングルバッファ方式では、ラインメモリに対する読み出しと、書き込みとのアクセスを多重化させることにより、アドレス計算が複雑化してしまうという問題があった。そこで、上記従来技術では、シングルバッファにおいて2つのアドレスパターンを用意し、そのアドレスパターンを切り替えながら書き込みと読み出しとを行っている。しかし、このような方法では、画像幅及びブロックサイズに制約が生じてしまう。例えば、予め用意しているアドレスパターンと異なるサイズの入力画像については、無効画素を追加するパディング制御を行わなければ、当該アドレスパターンを利用することができないものであった。その結果、追加した無効画素に対するアドレス計算が必要となり、制御が複雑化するとともに、スループットの低下を招いてしまうという問題があった。
本発明は、上述の問題に鑑みて成されたものであり、アドレスパターン用のLUTを使用せずに、スループットを低下させることなく簡易な制御でシングルバッファ方式による複数の矩形画像とラスタ画像とを相互に変換する仕組みを提供することを目的とする。
本発明は、画像データをラスタ順序からブロック順序へ変換する第1モードと、画像データをブロック順序からラスタ順序へ変換する第2モードとを動作モードとして有する画像処理装置であって、ラインメモリと、次に書き込む又は読み出す前記ラインメモリのアドレスを、バンド単位で切り替わる加算値を現在処理対象のアドレスのアドレス値に加算することにより算出する算出手段と、前記算出手段によって算出されたアドレスに従って、前記ラインメモリへアクセスして、画像データの書き込み又は読み出しを実行するアクセス手段と、前記アクセス手段により前記ラインメモリにアクセスするごとにカウントするカウント手段と、現在処理中のバンドにおける前記第1モード又は前記第2モードに応じた所定値が前記カウント手段によってカウントされると、現在処理対象のアドレスのアドレス値を次のバンドを処理する際の加算値として取得する取得手段とを備えることを特徴とする。
本発明によれば、アドレスパターン用のLUTを使用せずに、スループットを低下させることなく簡易な制御でシングルバッファ方式による複数の矩形画像とラスタ画像とを相互に変換することができる。
一実施形態に係る画像処理装置の制御構成を示す図。 一実施形態に係る画像処理装置のハードウェア構成を示す図。 一実施形態に係るラスタ画像とブロック画像との相互変換を示す概念図。 一実施形態に係る変換部の構成を示すブロック図。 一実施形態に係る変換部の動作フローと、ラインメモリへのRead/Write多重制御を示すタイミングチャート。 一実施形態に係るラインメモリへのアクセス順序の一例を示す図。 一実施形態に係るアドレス生成部による、生成されたアドレスパターンの一例を示す図。 一実施形態に係るアドレス生成部の制御フローを示すフローチャート。 一実施形態に係るアドレス生成部の構成の一例を示す図。 一実施形態に係る変換部の構成を示すブロック図。 一実施形態に係る変換部の動作フローと、ラインメモリへのRead/Write多重制御を示すタイミングチャート。 一実施形態に係るラインメモリへのアクセス順序の一例を示す図。 一実施形態に係るアドレス生成部による、生成されたアドレスパターンの一例を示す図。 一実施形態に係るアドレス生成部の制御フローを示すフローチャート。 一実施形態に係るアドレス生成部の構成の一例を示す図。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
<第1の実施形態>
<画像処理装置の構成>
以下では、本発明の第1の実施形態について説明する。図1A及び図1Bを参照して、本実施形態に係る画像処理装置100の構成について説明する。画像処理装置100は、図1Aに示すように、コントローラユニット200と、スキャナ部101と、プリンタ部105とを備える。
図1Bに示すように、コントローラユニット200は、各種制御プログラムを実行するCPU(Central Processing Unit)201を有する。CPU201は、ROM(Read Only Memory)203に格納されているブートプログラムに基づきシステムを起動する。そして、このシステム上でHDD(ハードディスク装置)204に格納されている制御プログラムを読み出してRAM(Random Access Memory)202をワークエリアとして所定の処理を実行する。
HDD204には、各種制御プログラムが格納される。また、HDD204には、スキャナ部101から読み込んだスキャンデータやネットワークI/F207を介して装置外から取得したデータが格納される。操作部出力I/F205は、操作表示部211へのデータ出力通信制御を行う。
操作部入力I/F206は、操作入力部212からのデータ入力通信制御を行う。ネットワークI/F207は、LAN213に接続され、LAN213を介した情報の入出力制御を行う。スキャナI/F208は、スキャナ部101から画像データを入力するとともに、スキャナ制御データの入出力を行う。プリンタI/F209は、プリンタ部105へ出力画像データを出力するとともに、プリンタ制御データの入出力を行う。上述した各デバイス201乃至209は、システムバス210上に配置される。
操作入力部212は、タッチパネルやハードキーなどの入力装置を備えた、ユーザーからの指示入力インターフェースである。操作表示部211は、LCD(Liquid Crystal Display)やLED(Light Emitting Diode)などの表示装置を備えた、ユーザーへの表示インターフェースである。
スキャナ部101は、CCD(Charge Coupled Device)などの光学的な読み取り装置を備え、紙媒体を光学的に操作して、電子的な画像データとして読み取る機能を有する。プリンタ部105は、電子的な画像データを、用紙などの記録媒体上に画像として形成する機能を有する。
コントローラユニット200は、制御構成として、スキャナ入力部102、ラスタ/ブロック変換部110、画像処理部103、ブロック/ラスタ変換部111、及びプリンタ出力部104を備える。スキャナ入力部102は、外部に接続されたスキャナ部101からラスタ画像を受け付ける。スキャナ部101は、不図示のイメージセンサを用いて、原稿データを読み取る。スキャナ部101で読み取られた画像データは、ラスタ順序の画素単位で順次スキャナ入力部102へと転送される。スキャナ入力部102は、不図示のvideo同期信号に従ってスキャナ部101から転送される画素データを受信し、不図示の内部バッファを経由してラスタ/ブロック変換部110に受信した画像データを送信する。
ラスタ/ブロック変換部110は、ラスタ順序の画像データをブロック順序の画像データに変換する。また、ブロック/ラスタ変換部111は、ブロック順序の画像データをラスタ順序の画像データに変換する。なお、ここでは、便宜上、ラスタ/ブロック変換部110及びブロック/ラスタ変換部111を分けて説明しているが、本実施形態では同一の構成として実現されることが望ましい。これは、ラインメモリのサイズをより低減することができるからである。また、以下では、便宜上、ラスタ順序をブロック順序に変換する場合には、ラスタ/ブロック変換と略記し、ブロック順序をラスタ順序に変換する場合には、ブロック/ラスタ変換と略記する。
ラスタ/ブロック変換部110は、スキャナ入力部102から受信したラスタ順序の画像データをブロック順序の画素単位で順次、画像処理部103へ送信する。画像処理部103は、ブロック処理を行う。画像処理部103は、ラスタ/ブロック変換部110から受信したブロック順序の画像データへ、フィルタ処理やスクリーン処理等を行い、処理後の画像データをブロック順序の画像データとしてブロック/ラスタ変換部111へ送信する。ブロック/ラスタ変換部111は、画像処理部103から受信したブロック順序の画像データをラスタ順序の画像データへ変換した後に、プリンタ出力部104へと出力する。
プリンタ出力部104は、ラスタ順序で受信した画像データを、不図示の内部バッファを経由してプリンタ部105へと送信する。プリンタ部105は、画像処理装置100の外部に接続され、不図示のvideo同期信号に従ってプリンタ出力部104からラスタ順序の画像データを受信し、不図示のレーザ光を感光体ドラムへ照射することで、露光及び画像形成を行う。露光を行う際の走査制御には、ラスタ順序の画像データが用いられる。
<ラスタ順序とブロック順序>
次に、図2を参照して、ラスタ順序とブロック順序との相互変換について説明する。221に示すように、ラスタ順序では、ページ画像は、一水平走査につき画像の左端から右端までの画素にアクセスされる。当該水平走査は、ページ画像の上端から下端方向へと継続的に行われ、ページ画像全体の画素へとアクセスする。
222に示すように、ブロック順序では、ブロック幅×ブロック高さの所定の矩形領域内部において、前述したラスタ画像と同様に各画素へとアクセスされる。ここで、ページ画像における、画像幅×ブロック高さの領域をバンドと称する。ページ画像は垂直方向へN個のバンドに分割される。バンド内部に含まれる各ブロックは、バンド内の左端から右端へと、隣り合うブロックごとに順次アクセスされる。バンド内部の画素へのアクセスが完了すると、隣り合う次のバンドがアクセスされる。このように、各バンドが順次アクセスされることで、ページ画像に含まれる全ての画素がアクセスされる。
<変換部の構成>
次に、図3を参照して、ラスタ/ブロック変換部110及びブロック/ラスタ変換部111の内部構成について説明する。ここでは、ラスタ/ブロック変換部110及びブロック/ラスタ変換部111をまとめて変換部300と称する。変換部300は、Read/Write制御部301、アドレス生成部302、メモリ制御部306、及びラインメモリ307を備える。
ラインメモリ307は、画像順序の変換を行うためのメモリである。ラインメモリ307はSRAMで構成され、少なくともバンドサイズ分のメモリ容量を有する。Read/Write制御部301は、メモリ制御部306を経由してラインメモリ307から画像データを読み出す。読み出された画像データはデータ出力バス308へと送信される。同様に、Read/Write制御部301は、データ入力バス305から入力された画像データを、メモリ制御部306を経由してラインメモリ307へ書き込む。なお、Read/Write制御部301は、直前に読み出しを行ったラインメモリ307のアドレスに対して書き込みを行うことに注意する。これにより、新しく書き込まれたデータによって、読み出しが完了していないデータが失われることが無い。
アドレス生成部302は、Read/Write制御部301がラインメモリ307への読み出し・書き込みを行うための、共通アドレスを生成(算出)する。なお、アドレス生成部302は、ブロック/ラスタ変換時には、ブロック順序書き込み及びラスタ順序読み出し用の共通アドレスを生成する。一方、アドレス生成部302は、ラスタ/ブロック変換時には、ラスタ順序書き込み及びブロック順序読み出し用の共通アドレスを生成する。アドレス生成部302は、Read/Write制御部301からアドレス要求303を受信すると、次の画素にアクセスするためのアドレス値304を返答する。Read/Write制御部301は、1バンド分の読み出し・書き込みが完了すると、バンド終了通知309をアドレス生成部302へ送信する。アドレス生成部302は、バンド終了通知309を受信すると、共通アドレス生成パターンを変更する。この、アドレス生成パターンの詳細については図6で後述する。
<変換部の動作>
次に、図4を参照して、変換部300の全体の動作について説明する。401は、Read/Write制御部301による書き込み処理と読み出し処理フロー、及び、アドレス生成部302が生成するアドレスパターンの遷移を示す。なお、401に示すように、アドレスパターンnでは、バンドnをアドレスパターンnでラインメモリ307へ画素データが書き込まれ、アドレスパターンn+1でラインメモリ307から画素データが読み出されることで、順序変換がなされる。
Read/Write制御部301は、ページ処理が開始されると、最初のバンド0をラインメモリ307へ書き込む。このとき、Read/Write制御部301は、アドレス生成部302が生成したアドレスパターン0の書き込みアドレスを用いてラインメモリ307へアクセスする。また、Read/Write制御部301は、バンド0の書き込みがなされている期間は、読み出すべきデータがラインメモリ307に存在しないため、読み出し動作を行わない。この期間を初期期間と称する。
Read/Write制御部301は、バンド0の書き込みが完了すると、アドレス生成部302に対してバンド終了通知309を通知する。アドレス生成部302は、バンド終了通知309を受信すると、アドレスパターン1でアドレスの生成を開始する。Read/Write制御部301は、バンド1をラインメモリ307の空き領域に対してアドレスパターン1で書き込み、これと並行して、すでに書き込まれているバンド0をアドレスパターン1で読み出す。Read/Write制御部301が書き込み動作と読み出し動作を並行して行う期間を、Read/Write多重期間と称する。
Read/Write多重期間において、バンドN−1がラインメモリ307へ書き込まれると、1ページ分の画像の書き込みがすべて完了する。なお、バンドN−1は、1ページの画像をN個のバンドに分割したときの最終バンドを表すことに注意されたい。バンドN−1の書き込み、及びバンドN−2の読み出しが完了すると、Read/Write制御部301は、最後のバンドN−1の読み出し動作を開始する。この期間中は、すでにページ画像の書き込みはすべて完了しているため、Read/Write制御部301はラインメモリ307に対して読み出し動作のみを行う。この期間を終端期間と称する。終端期間において、バンドN−1のデータがすべて読み出し完了されると、ページ画像の変換処理が完了する。
402は、Read/Write制御部301の書き込み及び読み出し制御をより詳細に説明するための、タイミングチャートである。初期期間においては、Read/Write制御部301へ有効データが入力されると、書き込み動作のみが行われる。Read/Write制御部は301、初期期間においてはrd_ready信号がアサートされていないため、読み出し制御を行わない。なお、rd_ready信号は、Read/Write制御部301が内部的なフラグとして保持してもよく、外部から制御を与えてもよい。
ブロック0(ブロック0−last)の書き込み動作(wr last)が完了すると、rd_ready信号がアサートされ、Read/Write制御部301は読み出しを開始する。また同時に、Read/Write制御部301は、有効データ(1−0)が入力されると書き込み動作を行う。なお、本実施形態においては、Read/Write制御部301は、書き込み動作と読み出し動作を同一のクロック周期において行う。
また、Read/Write制御部301は、有効データが入力され、書き込み動作が行われるときのみ、読み出し動作を行う。すなわち、Read/Write制御部301は、有効データが入力されず、書き込み動作が行われない限り、読み出し動作を行わない。このような動作を行うことにより、書き込み及び読み出しに用いるアドレスを常に共通とすることができる。
なお、本実施形態のように、同一クロック周期で読み出しと書き込みを行うには、ラインメモリ307としてデュアルポートSRAM等を用いることで実現できる。また、ラインメモリ307は、同一アドレスに対する読み出しと書き込みを行った場合、読み出されるデータは、書き込み中の新しいデータではなく、すでに書き込まれていた古いデータが読み出されるよう構成する必要があることに注意する。このようなSRAMの機能は、read−first機能などとも称される。
一方、終端期間では、Read/Write制御部301は、有効データの受信にかかわらず、読み出し動作を、バンドN−1がすべて読み出されるまで行う。なお、Read/Write制御部301は、終端期間であるかどうかを判別するために、読み出しを行ったバンド数をカウントすることで判別する。或いは、データ入力バス305上の、不図示のpage_end信号等を用いることで、判別してもよい。
<アドレスパターン>
次に、図5を参照して、アドレス生成部302が生成したアドレスパターンによって、Read/Write制御部301がラインメモリ307へアクセスする制御について説明する。図5では、画像幅=7、ブロック幅=1、ブロック高さ=3とし、7×3サイズのラインメモリ307を用いてラスタ/ブロック変換を行う様子を示す。以下では、ブロックに含まれる複数のワード領域であって、最小領域(1画素)に対応する領域をセルと称する。
セル501の左上部に示された数値502は、1ワード領域に割り当てられたアドレスを示す。なお、ラインメモリ307のアドレス深度は7×3=21であるため、各ワードには0から20までのアドレスが割り当てられている。セル501の中央部に下線付きで示された数値503は、アドレスパターンnにおいて、Read/Write制御部301がラインメモリ307の各ワードにアクセスする順番を示す。
510に示すアドレスパターン0では、ラスタ順序の画素データが、ラインメモリ307に対して線形に1ずつアドレスを増加させながらアクセスされる。なお、現在アクセスしているアドレスから次にアクセスするアドレスへの増加量を、アドレス増加量と称する。アドレスパターン0では、アドレス増加量は1である。
520に示すアドレスパターン1では、アドレスパターン0で書き込まれたバンド0のラスタ順序の画素データが、ブロック順序の画素データとして読み出される。また同時に、バンド1のラスタ順序の画素データが、ラスタ順序の画素データとしてアドレスパターン1で書き込まれる。アドレスパターン1では、アドレス増加量=7ずつアドレスを増加させながら、バンド1の書き込みとバンド0の読み出しのためのアクセスがなされる。また、現在のアドレスにアドレス増加量を加算した値がアドレス深度以上となってオーバーフローした場合には、アドレス深度の値を減算して、1が加算される。すなわち、アドレス深度−1が減算される。例えば、アドレス0、7、14、21と増加するものの、21はアドレス深度値20以上となるため、21−20=1と算出される。同様に、530、540においても、アドレス増加量ずつアドレスが逐次増加していき、アドレス値がオーバーフローした場合には、アドレス深度−1が減算される。
続いて、図6を参照して、アドレス生成部302が生成したアドレスパターンの一例について、関数として表したグラフを用いて説明する。各図の横軸はアクセスするサイクルを示し、縦軸は各サイクルにおける生成されたアドレス値をそれぞれ示す。610〜640はそれぞれ、図5の510〜540に対応している。図6のアドレス関数は、画像幅=7、ブロック高さ=3、ブロック幅=1での一例を示すが、これを任意の画像幅及びブロック高さに一般化して表すことが可能である。サイクルをt、アドレス増加量をα、アドレス深度をβとすると、サイクルtにおけるアドレスaddr(t)は、以下の数式(1)で表される。
addr(t)={addr(t−1)+α}modβ
+[(addr(t−1)+α)/β]・・・(1)
ここでは、第2項の大括弧[]は床関数を表すことに注意されたい。即ち、(addr(t−1)+α)をβで除算した場合の商を示す。数式(1)により、ラインメモリ307に対するバンドnの読み出し、及びバンドn+1の書き込みを行うためのアドレス関数が得られる。なお、数式(1)はブロック幅=1に限定されていることに注意されたい。
任意のブロック幅に対して数式(1)を適用するためには、ラインメモリ307をブロック幅個数に分割することで実現できる。即ち、ラインメモリ307へ書き込みを行う前に、画像データをブロック幅×1の矩形画像単位へとシリアル―パラレル変換を行い、ブロック幅個数分に分割された各SRAMの同一アドレスに対して同時に書き込みを行う。また、ラインメモリ307から読み出しを行う場合は、ブロック幅個数分に分割された各SRAMから、上記矩形画像単位を同一アドレスから同時に読み出したのち、パラレル―シリアル変換を行う。このような操作により、分割された各SRAMへアクセスするためのアドレス値を数式(1)で得ることが可能となる。
数式(1)をハードウェアに実装する場合、アドレス深度βが2のべき乗であれば、ビット分割により非常に簡易に実現できる。数式(1)において、第1項及び第2項はそれぞれ、現在のアドレス値にαを加算した値をβで整数除算したときの剰余と、商とを表す。よって、βが2のべき乗である場合、商と剰余はそれぞれ、最上位ビットからlog2(β)ビット、log2(β)−1ビットから最下位ビットと分割することで求まる。
次に、アドレスパターンnにおけるアドレス増加量α(n)の算出方法について説明する。図6の610のアドレスパターン0において、t=7におけるアドレス値が、図6の620のアドレスパターン1におけるアドレス増加量と一致する。同様に、図6の620のアドレスパターン1において、t=3におけるアドレス値が、アドレスパターン0におけるアドレス増加量と一致する。サイクルt=7及びt=3はそれぞれ、画像幅及びブロックサイズ(ブロック幅×ブロック高さ)である。このことは、任意のアドレスパターンnについても成り立つことから、アドレスパターンnにおけるアドレス増加量α(n)を一般化して表すことが可能である。アドレスパターンnにおけるアドレス関数をaddrn(t)、画像幅をIW、ブロック幅及びブロック高さをBW,BHとすると、アドレスパターンnにおけるアドレス増加量α(n)は、以下の数式で表される。
α(n)=addrn-1(I)・・・(2)
α(n)=addrn-1(B×B)・・・(3)
数式(2)はラスタ/ブロック変換を行う場合の、アドレスパターンnにおけるアドレス増加量α(n)を表す。数式(3)はブロック/ラスタ変換を行う場合の、アドレスパターンnにおけるアドレス増加量α(n)を表す。数式(1)、及び数式(2)と数式(3)を用いることで、任意の画像サイズ及びブロックサイズにおいて、ブロック順序、ラスタ順序の相互変換を行うためのアドレス値を得ることが可能となる。
<アドレス生成処理>
次に、図7を参照して、アドレス生成部302において、数式(1)〜数式(3)に基づいたアドレス生成処理の処理手順について説明する。なお、以下で説明する処理は、アドレス生成部302によってなされる。また、以下で説明する処理は、CPU201がROM203やHDD204に格納された制御プログラムをRAM202に読み出して実行することにより実現されてもよい。
まず、720のフローチャートについて説明する。S701で、アドレス生成部302は、初期化を行う。具体的には、アドレス生成部302は、アドレス値304及びアドレス要求カウント値を”0”にリセットし、アドレス増加量α(0)を初期値である”1”にセットする。
S702で、アドレス生成部302は、Read/Write制御部301からアドレス要求303を受信したか否かを判定する。受信するまで待機し、受信するとS703に進む。S703で、アドレス生成部302は、現在のアドレス値304をRead/Write制御部301に返答する。続いて、S704で、アドレス生成部302は、カウント値をインクリメントする。
S705で、アドレス生成部302は、次のアドレス値304を算出する。ここで、S705のアドレス値304の算出についての詳細をフローチャート721を用いて説明する。まず、S7051で、アドレス生成部302は、アドレス値304にアドレス増加量α(n)を加算する。次に、S7052で、アドレス生成部302は、アドレス値304がアドレス範囲をオーバーフローしているか否かを判定する。オーバーフローした場合は、S7053に進み、アドレス生成部302は、アドレス値304からアドレス深度β−1の値を減算してS705の処理を終了する。一方、S7052で、オーバーフローしていない場合はS7053の処理を行うことなく、S705の処理を終了する。
フローチャート720の説明に戻る。S706で、アドレス生成部302は、次のアドレスパターンにおけるアドレス増加量α(n+1)を算出する。ここで、S706の次のアドレス増加量α(n+1)の算出についての詳細をフローチャート722を用いて説明する。まず、S7061で、アドレス生成部302は、現在の動作モードがブロック/ラスタ変換であるか、ラスタ/ブロック変換であるかを判断する。現在の動作モードがラスタ/ブロック変換であれば、S7062へ進み、ブロック/ラスタ変換であれば、S7063へと進む。
S7062で、アドレス生成部302は、カウント値が画像幅Iに達したかどうかを判断し、達していればS7064へ進む。達していなければS706の処理を終了する。同様に、S7063で、アドレス生成部302は、カウント値がブロックサイズ(B×B)に達したかどうかを判断し、達していればS7064へ進み、達していなければS706の処理を終了する。S7064で、アドレス生成部302は、次のアドレスパターンにおけるアドレス増加量α(n+1)として、現在のアドレス値304を取得してS706の処理を終了する。
フローチャート720の説明に戻る。S707で、アドレス生成部302は、バンド終了通知309を受信したか否かを判定し、受信していればS708へと進み、受信していなければS710へと進む。S708で、アドレス生成部302は、バンド終了通知309を受けて、カウント値及びアドレス値304をリセットする。続いて、S709で、アドレス生成部302は、アドレス増加量α(n)を、S7064で取得した値α(n+1)で更新する。S710で、アドレス生成部302は、ページ内すべての変換処理が完了したかどうかを判断し、終了していれば本フローを終了する。終了していなければS702へと戻る。
<変形例>
本発明は上記構成に限らず様々な変形が可能である。例えば、ここでは、CPU201が制御プログラムを実行することにより、アドレス生成部302の処理を実現する構成について説明したが、アドレス生成部302をハードウェアで実装してもよい。
図8を参照して、アドレス生成部302をハードウェアで実装した場合の、構成の一例について説明する。アドレス生成部302は、動作のためのレジスタとして、アドレス深度β(実際の値はアドレス深度−1)804、動作モード805、ブロックサイズ806、及び画像幅807を有する。また、Read/Write制御部301とのI/Fとして、アドレス要求303、バンド終了通知309、及びアドレス値304を有する。アドレス生成部302は、アドレス算出部801と次アドレス増加量算出部802を有する。
アドレス算出部801は、アドレス値304を保持するためのアドレス保持部812を有する。アドレス保持部812は、アドレス要求303を受信すると、次のアドレス値をロードする。また、アドレス保持部812は、バンド終了通知309を受信するとリセットされる。アドレス算出部801は、アドレス増加量と現在のアドレス値とを加算する加算器808を有する。また、アドレス算出部801は、オーバーフロー検知を行うための比較器809、オーバーフロー時にアドレス深度−1を減算するための減算器810、及び、オーバーフローの有無によって演算結果を切り替えるセレクタ811を有する。減算器810は、加算器808の加算結果(加算後のアドレス値)からアドレス深度804を減算する。セレクタ811には、加算器の加算結果、減算器810の減算結果、比較器809の比較結果が入力され、比較結果に基づいて、加算結果又は減算結果が選択される。
次アドレス増加量算出部802は、現在のアドレス増加量を保持するアドレス増加量保持部816を有する。アドレス増加量保持部816は、バンド終了通知309を受信すると、次アドレス増加量保持部818から、新しいアドレス増加量をロードする。また、アドレス増加量保持部816は、リセット時には初期値817にセットされる。本実施形態においては、初期値817は1である。次アドレス増加量算出部802は、アドレス要求303の個数をカウントするカウンタ部813、及び、カウント値が画像幅807或いはブロックサイズ806であるかを比較する比較器814を有する。また、モードに応じて次アドレス増加量を取得するカウント数を切り替えるためのモードセレクタ815を有する。
以上説明したように、本実施形態に係る画像処理装置は、画像データをバンド単位で複数の領域へ分割し、分割したバンド単位で画像データを1つのラインメモリへ書き込むとともに読み出しを行う。これにより、本画像処理装置は、ラスタ順序の画像データと、ブロック順序の画像データとを相互に変換する。また、本画像処理装置は、次に書き込む又は読み出すアドレスを算出するために用いられ、現在処理対象のアドレスからのアドレス増加量を、バンド単位で算出する。また、本画像処理装置は、ラインメモリへ画像データを書き込む際の書き込み先のアドレスと、ラインメモリから画像データを読み出す際の読み出し先のアドレスとを、算出されたアドレス増加量を現在処理対象のアドレスのアドレス値に加算することにより算出する。さらに、本画像処理装置は、算出されたアドレスに従って、ラインメモリへアクセスして、画像データの書き込み及び読み出しを実行する。このようにアドレス生成を行うことで、任意の画像サイズ、ブロックサイズにおけるブロック順序、ラスタ順序の相互変換を行うことが可能となる。本実施形態では、アドレスの生成に係るパラメータとしてアドレス増加量αを定義し、オーバーフローを考慮しながらアドレス増加量αをアドレス値に加算するのみという、非常に簡易な制御によってアドレス生成を実現できる。アドレス増加量α以外の変量は不要となる。このことは、動作モードや画像サイズ、ブロックサイズの違いによって制御が複雑化することを抑制することができる。また、現在処理対象としている画素の、ブロック内における位置を考慮する必要もない。さらに、アドレス増加量αの算出には、アクセス個数をカウントして、特定の個数番目に出現したアドレス値を取得するのみという、非常に簡素な制御で実現できる。
<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、アドレス生成部302を1つのみ使用し、ラインメモリ307に対する書き込み及び読み出しを、常に同時に行う構成について述べた。本実施形態ではハードウェア実装としてのアドレス生成部302を書き込み用、読み出し用の2つを個別に設けることで、画像処理装置100の全体のスループットを向上することが可能な構成について述べる。なお、本実施形態では上記第1の実施形態との差分について主に説明し、共通点については説明を省略する。
図9を参照して、変換部300の内部構成について説明する。第1の実施形態との差分は、変換部300が、アドレス生成部302を書き込み用、読み出し用に2つ有している点である。また、変換部300は、ラインメモリ307への書き込みを制御するためのWrite制御部901、読み出しを制御するためのRead制御部911を有する。Write制御部901は、バンド終了通知902、アドレス要求903を用いて、アドレス生成部302からWriteアドレス値904を取得する。
同様に、Read制御部911は、バンド終了通知906、アドレス要求907を用いて、アドレス生成部302からReadアドレス値908を取得する。アクセス調停部905は、Write制御部901、Read制御部911からの書き込み、読み出し要求を調停する。アクセス調停部905は、現在処理中のバンドにおいて、書き込み及び読み出しを行った回数をカウントすることで、書き込み動作が読み出し動作を追い越してしまうことが無いよう、Write制御部901からの書き込み要求を選択的に受け付ける。また、アクセス調停部905は、Read制御部911のバンド読み出し動作が完了すると、Write制御部901のバンド書き込み動作が完了するまで、Read制御部911からの読み出し要求を受け付けない。
Write制御部901は、アクセス調停部905から書き込み不可と通知されると、write_wait信号909をアサートすることで、有効データを受けつけられないことを変換部300の前段の処理部に通知する。Read制御部911は、Write制御部901の有効データ受信を待たずに読み出し動作を先行して行う。また、Read制御部911は、変換部300の後段の処理部からread_wait信号910を受け付けると、ラインメモリ307に対する読み出し制御を中断する。このように、アクセス調停部905の動作により、Write制御部901、Read制御部911が各々のタイミングで動作していても、アドレスパターンを崩すことなくブロック順序、ラスタ順序の相互変換が可能となる。
<変換部の動作>
次に、図10を参照して、変換部300の動作について説明する。図10の1001はWrite制御部901、Read制御部911の動作フローを示す。上記第1の実施形態との違いは、ラインメモリ307に対する読み出し、書き込みの制御が常に同時ではなく、Write制御部901、Read制御部911各々のタイミングによってなされている点である。本実施形態では、Read制御部911による読み出しを常に先行させることにより、read_wait信号910がアサートされても、変換部300全体の動作を止めなくてよい。
図10の1002に示すように、read_wait信号910がアサートされても、読み出し動作が先行したアクセス個数分は書き込み動作を継続して行うことができる。このことは、画像処理装置100において、変換部300が画像順序の変換のみならず、画像処理装置100の各処理部の処理中断時間を吸収する、バッファの役割を果たすことを意味する。
以上説明したように、本実施形態に係る画像処理装置100は、上述の構成を有することにより、スループットを向上させつつ、ブロック順序、ラスタ順序の相互変換が可能となる。本実施形態では、アドレス生成部302を2つ設けているが、上記第1の実施形態で説明したように、アドレス生成部302は非常に簡易な構成とすることが可能なため、2つ設けることによって回路規模が大きく増えることはない。また、読み出し側、書き込み側で全く同一構成のアドレス生成部302を使用することが可能である。さらに、アドレス生成部302を2つ設けるにあたって、アドレス生成のための特別な制御を追加する必要もない。
<第3の実施形態>
以下では、本発明の第3の実施形態について説明する。上記第1の実施形態では、ブロック幅を1に限定した場合のブロック/ラスタ変換について説明した。上記第1の実施形態では、ブロック幅を1以外とした場合は、ラインメモリ307の分割や、シリアル―パラレル変換が必要となる。本実施形態では、ラインメモリ307の分割や、追加のシリアル―パラレル変換等を不要とし、直接アドレスを生成する方法について説明する。
<アドレスパターン>
図11を参照して、本実施形態におけるアドレス生成部1400が生成したアドレスパターンによって、Read/Write制御部301がラインメモリ307へアクセスする制御について説明する。なお、図11では、画像幅=6、ブロック幅=2、ブロック高さ=2とし、6×2サイズのラインメモリ307を用いてラスタ/ブロック処理を行う様子を示す。図11の1110〜1140に示すように、ブロック幅×1=2×1の画素は常にペアとしてアクセスされる。本実施形態では、アドレス増加量を、上記ブロック幅個数分のペア単位で定義する。即ち、1110では、0番目、1番目の画素ペアをアクセスしたのち、2番目、3番目の画素ペアへアクセスするための、増加量2をアドレス増加量として定義する。同様に、1120、1130、1140ではアドレス増加量はそれぞれ6、8、4となる。
続いて、図12を参照して、アドレス生成部1400が生成したアドレスパターンの一例について、関数として表したグラフを用いて説明する。各図の横軸はアクセスするサイクルを示し、縦軸は各サイクルにおける生成されたアドレス値をそれぞれ示す。図12の1210〜1240はそれぞれ、図11の1110〜1140に対応する。上記第1の実施形態と同様に、アドレス関数を任意の画像幅、ブロック高さ、及び、ブロック幅に一般化して表すことが可能である。サイクルをt、アドレス増加量をα、アドレス深度をβ、ブロック幅をBとすると、サイクルtにおけるアドレスaddr(t)は、以下の数式で表される。
base_addr(t)={base_addr(t’-1)+α}modβ
+B[(base_addr(t’-1)+α)/β]・・・(4)
t’=[t/B]・・・(5)
addr(t)=tmodB+base_addr(t)・・・(6)
また、図12に示すように、ブロック幅Bが1以外の場合であっても、アドレス増加量の算出は、画像幅番目、ブロックサイズ番目のアドレス値を取得することによって求まる。よって、任意のアドレスパターンnにおけるアドレス増加量α(n)の算出は、数式(2)、(3)をそのまま用いることが可能である。
<アドレス生成処理>
次に、図13を参照して、アドレス生成部1400において、数式(2)、数式(3)、及び、数式(4)、数式(5)、数式(6)に基づいた、ブロック幅が任意の場合におけるアドレス生成処理の処理手順について説明する。なお、以下で説明する処理は、アドレス生成部302によってなされる。また、以下で説明する処理は、CPU201がROM203やHDD204に格納された制御プログラムをRAM202に読み出して実行することにより実現されてもよい。
なお、全体の制御フローは図7のフローチャート720と同様であるため説明を省略する。上記第1の実施形態と異なるのは、S701の初期化処理、及びS705におけるアドレス算出の処理のみである。S701の初期化では、アドレス増加量α(n)の初期値817として、ブロック幅Bを設定する点のみが異なる。S705の処理では、図7のフローチャート721におけるS7051及びS7052の処理は上記第1の実施形態と同様である。
S901で、アドレス生成部1400は、カウント値がブロック幅の倍数であるか否かを判断する。即ち、当該カウント値はブロック幅個数分の画素集合に対するアクセスを完了したか否かを判断する。S901で、アクセスが完了していれば、S7051,S7052,S902の処理に従ってベースアドレスを更新する。一方、アクセスが完了していなければ、ベースアドレスを更新せず、S903に進む。
S902で、アドレス生成部1400は、オーバーフロー時の減算について、S7053とは異なり、アドレス深度−ブロック幅の値を減算し、S903に進む。本実施形態では、S7051,S7052,S902の手続きをブロック幅個数分の画素集合に対する、ベースアドレスの算出として行う。S903で、アドレス生成部1400は、上記数式(6)に従って、アドレス値を更新し、S705のアドレス算出処理を終了する。上記数式(6)では、ベースアドレス生成部1401で生成したアドレスに、アドレス要求を受けた数(カウント値)をブロック幅で除した剰余数を加算する
<変形例>
本発明は上記構成に限らず様々な変形が可能である。例えば、ここでは、CPU201が制御プログラムを実行することにより、アドレス生成部302の処理を実現する構成について説明したが、アドレス生成部1400をハードウェアで実装してもよい。
図14を参照して、アドレス生成部1400をハードウェアで実装した場合の、構成の一例について説明する。アドレス生成部1400は、ベースアドレス生成部1401を有しており、これは、上記第1の実施形態におけるアドレス生成部302と同一の構成を有する。なお、ベースアドレス生成部1401は、初期値817として、ブロック幅Bが設定される。また、ベースアドレス生成部1401は、ベースアドレス生成動作におけるオーバーフロー処理のためのレジスタとして、アドレス深度β−ブロック幅1402を有する。
アドレス生成部1400は、さらに、数式(5)に従ってアドレス要求303を分周するための、分周部1409を有する。分周部1409は、分周比としてブロック幅1403を受け付ける。また、分周部1409によって分周されたアドレス要求1404、1405は、ベースアドレス生成部1401及びセレクタ1407へと入力される。分周されたアドレス要求1404は、動作タイミング調整のために、分周されたアドレス要求1405に対して1クロックサイクル早く動作するようにしてもよい。
アドレス生成部1400は、さらに、数式(6)に従ってアドレスを算出するための、加算器1406、セレクタ1407、及びアドレス保持部1408を有する。アドレス保持部1408は、アドレス要求303を受信すると、次のアドレス値をロードする。また、アドレス保持部1408は、バンド終了通知309を受信するとリセットされる。
以上説明したように、本実施形態に係る画像処理装置は、上述した制御でアドレス生成を行うことで、任意のブロック幅に対しても、ラインメモリ307の分割や、追加のシリアル―パラレル変換等を不要とし、直接アドレスを生成することが可能となる。本実施形態では、上記第1の実施形態の制御に対して、小規模の構成の追加のみによって任意のブロック幅に拡張できることを示した。具体的には、数式(5)に示したアドレス要求303の分周、及び数式(6)に示した加算の追加のみである。これら追加の制御によって、アドレス生成全体の制御が大きく変更されることなく、処理を2つ(S901及びS903)追加するのみで、任意のブロック幅へ拡張することが可能である。本実施形態によれば、任意の画像サイズ、ブロックサイズに対して、簡易な制御によって、ブロック順序、ラスタ順序の相互変換を行うことが可能となる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
301:Read/Write制御部、302:アドレス生成部、307:ラインメモリ

Claims (12)

  1. 画像データをラスタ順序からブロック順序へ変換する第1モードと、画像データをブロック順序からラスタ順序へ変換する第2モードとを動作モードとして有する画像処理装置であって、
    ラインメモリと、
    次に書き込む又は読み出す前記ラインメモリのアドレスを、バンド単位で切り替わる加算値を現在処理対象のアドレスのアドレス値に加算することにより算出する算出手段と、
    記算出手段によって算出されたアドレスに従って、前記ラインメモリへアクセスして、画像データの書き込み又は読み出しを実行するアクセス手段と、
    前記アクセス手段により前記ラインメモリにアクセスするごとにカウントするカウント手段と、
    複数のバンドのうち現在処理中のバンドにおける前記第1モード又は前記第2モードに応じた所定値が前記カウント手段によってカウントされると、現在処理対象のアドレスのアドレス値を次のバンドを処理する際の加算値として取得する取得手段と
    を備えることを特徴とする画像処理装置。
  2. 前記取得手段は、
    前記第1モードの場合、複数のバンドのうち、現在処理しているバンドの最初のアドレスから、該バンドの画像幅番目のアドレスまでのアクセスが前記カウント手段によってカウントされると、前記所定値がカウントされたと判断することを特徴とする請求項1に記載の画像処理装置。
  3. 前記取得手段は、
    前記第2モードの場合、複数のバンドのうち、現在処理しているバンドの最初のアドレスから、該バンドに含まれるブロックのブロックサイズ番目のアドレスまでのアクセスが前記カウント手段によってカウントされると、前記所定値がカウントされたと判断することを特徴とする請求項1に記載の画像処理装置。
  4. 記算出手段は、
    前記取得手段によって取得された加算値を、現在処理対象のアドレスのアドレス値へ加算した結果、加算後のアドレス値が前記ラインメモリのアドレス深度を超える場合は、前記アドレス深度から前記バンドに含まれるブロックの幅を減算した値を、前記加算後のアドレス値から減算することを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。
  5. 記算出手段は、初期値として、前記バンドに含まれるブロックの幅を前記加算値の初期値として算出することを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
  6. 記算出手段は、前記アクセス手段からアドレス要求を受けるとアドレスを算出することを特徴とする請求項1乃至5の何れか1項に記載の画像処理装置。
  7. 記算出手段は、さらに
    前記算出したアドレスに、前記アクセス手段からアドレス要求を受けた数を、前記バンドに含まれるブロックのブロック幅で除した剰余数を加算することを特徴とする請求項6に記載の画像処理装置。
  8. 記算出手段は、
    現在処理対象のアドレスのアドレス値を保持するアドレス保持部と、
    前記ラインメモリのアドレス深度を保持するレジスタと、
    前記アドレス保持部で保持されているアドレス値と、前記取得手段によって取得された前記加算値を加算する加算器と、
    前記加算器による加算結果から前記レジスタに保持されている前記アドレス深度を減算する減算器と、
    前記レジスタに保持されているアドレス深度と、前記加算器による加算結果とを比較する比較器と、
    前記比較器の比較結果に基づき、前記加算器による加算結果と、前記減算器による減算結果との何れかを選択して前記アドレス保持部に出力するセレクタと
    を備えることを特徴とする請求項1乃至7の何れか1項に記載の画像処理装置。
  9. 前記書き込み先のアドレスを算出する前記算出手段と、前記読み出し先のアドレスを算出する前記算出手段とが個別に設けられることを特徴とする請求項8に記載の画像処理装置。
  10. 前記取得手段は、
    前記第1モード、又は前記第2モードの動作モードを保持するレジスタと、
    前記バンドに含まれるブロックのブロックサイズを保持するレジスタと、
    前記バンドの画像幅を保持するレジスタと、
    現在の加算値を保持する第1の加算値保持部と、
    次の加算値を保持する第2の加算値保持部と、
    を備え、
    前記第1の加算値保持部は、前記カウント手段によって所定値がカウントされると、前記第2の加算値保持部に保持されている前記次の加算値をロードし、
    前記第2の加算値保持部は、前記動作モード、前記ブロックサイズ、及び前記バンドの画像幅を用いて、前記第1モードの場合には、前記バンド単位で分割された複数のバンドのうち、現在処理しているバンドの最初のアドレスから、該バンドの画像幅番目のアドレス値を次の加算値として前記アドレス保持部からロードし、前記第2モードの場合には、複数のバンドのうち、現在処理しているバンドの最初のアドレスから、該バンドに含まれるブロックのブロックサイズ番目のアドレス値を次の加算値として前記アドレス保持部からロードすることを特徴とする請求項8又は9に記載の画像処理装置。
  11. ラインメモリを備え、画像データをラスタ順序からブロック順序へ変換する第1モードと、画像データをブロック順序からラスタ順序へ変換する第2モードとを動作モードとして有する画像処理装置の制御方法であって、
    出手段が、次に書き込む又は読み出す前記ラインメモリのアドレスを、バンド単位で切り替わる加算値を現在処理対象のアドレスのアドレス値に加算することにより算出する算出工程と、
    アクセス手段が、前記算出工程で算出されたアドレスに従って、前記ラインメモリへアクセスして、画像データの書き込み又は読み出しを実行するアクセス工程と
    カウント手段が、前記アクセス手段により前記ラインメモリにアクセスするごとにカウントするカウント工程と、
    取得手段が、複数のバンドのうち現在処理中のバンドにおける前記第1モード又は前記第2モードに応じた所定値が前記カウント工程でカウントされると、現在処理対象のアドレスのアドレス値を次のバンドを処理する際の加算値として取得する取得工程と
    を含むことを特徴とする画像処理装置の制御方法。
  12. 請求項11に記載の画像処理装置の制御方法の各工程をコンピュータが実行するためのプログラム。
JP2016007226A 2016-01-18 2016-01-18 画像処理装置、その制御方法、及びプログラム Active JP6757141B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016007226A JP6757141B2 (ja) 2016-01-18 2016-01-18 画像処理装置、その制御方法、及びプログラム
US15/403,488 US10510135B2 (en) 2016-01-18 2017-01-11 Image processing apparatus, method of controlling the same, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016007226A JP6757141B2 (ja) 2016-01-18 2016-01-18 画像処理装置、その制御方法、及びプログラム

Publications (3)

Publication Number Publication Date
JP2017129918A JP2017129918A (ja) 2017-07-27
JP2017129918A5 JP2017129918A5 (ja) 2019-02-28
JP6757141B2 true JP6757141B2 (ja) 2020-09-16

Family

ID=59313889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016007226A Active JP6757141B2 (ja) 2016-01-18 2016-01-18 画像処理装置、その制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US10510135B2 (ja)
JP (1) JP6757141B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210034726A (ko) * 2019-09-20 2021-03-31 삼성전자주식회사 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템
GB2628449A (en) * 2023-09-05 2024-09-25 V Nova Int Ltd Buffer utilisation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359694A (en) * 1992-07-27 1994-10-25 Teknekron Communications Systems, Inc. Method and apparatus for converting image data
JPH08171384A (ja) * 1994-12-16 1996-07-02 Canon Inc 走査変換方法及びその装置
US7379609B2 (en) * 2002-07-19 2008-05-27 Samsung Electronics Co., Ltd. Image processing apparatus and method for conversion between raster and block formats
KR100614652B1 (ko) * 2004-11-10 2006-08-22 삼성전자주식회사 전력 소모가 감소된 화상 처리 장치 및 방법
US8466928B2 (en) * 2006-10-06 2013-06-18 Canon Kabushiki Kaisha Image processing apparatus and method
JP5094274B2 (ja) 2006-10-06 2012-12-12 キヤノン株式会社 画像処理装置及びその方法

Also Published As

Publication number Publication date
US10510135B2 (en) 2019-12-17
US20170206629A1 (en) 2017-07-20
JP2017129918A (ja) 2017-07-27

Similar Documents

Publication Publication Date Title
JP4789753B2 (ja) 画像データバッファ装置、画像転送処理システム、及び画像データバッファ方法
JP4416694B2 (ja) データ転送調停装置およびデータ転送調停方法
JP5411530B2 (ja) 並列処理プロセッサシステム
JP6757141B2 (ja) 画像処理装置、その制御方法、及びプログラム
JP3564395B2 (ja) アドレス生成装置および動きベクトル検出装置
JP2012234425A (ja) 画像処理装置及び画像処理方法
US8908964B2 (en) Color correction for digital images
JP6442867B2 (ja) 画像処理装置、撮像装置、及び画像処理方法
US8650347B2 (en) Arbitration device, arbitration method, and electronic apparatus
US8850118B2 (en) Circuit and method for dynamically changing reference value for address counter based on cache determination
JP2009054001A (ja) 画像処理装置及びプログラム
JP2009071569A (ja) 動画像符号化における動き探索装置
JP2006287583A (ja) 画像データ領域取得補間回路
KR101688435B1 (ko) 블록 구조를 이용한 적분 영상 생성 장치 및 그 방법
JP3519205B2 (ja) Dmaコントローラ
JP2007006194A (ja) 画像復号再生装置
JP7081477B2 (ja) 画像処理装置、画像処理装置の制御方法、およびプログラム
JP5935573B2 (ja) 画像処理装置、画像処理プログラム及び画像処理方法
JP5612965B2 (ja) 画像処理装置及び画像処理方法
US8209502B2 (en) Semiconductor integrated circuit and access controlling method of semiconductor memory
JPH0652304A (ja) 画像処理装置及びその方法
US8643896B2 (en) Image processing apparatus for outputting raster image using a plurality of processors
JP2007306445A (ja) 画像データ変換装置
JPH11168610A (ja) 画像処理装置
JP2018078465A (ja) 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200828

R151 Written notification of patent or utility model registration

Ref document number: 6757141

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151