JP2011120115A - Image processing apparatus and control method thereof - Google Patents

Image processing apparatus and control method thereof Download PDF

Info

Publication number
JP2011120115A
JP2011120115A JP2009277039A JP2009277039A JP2011120115A JP 2011120115 A JP2011120115 A JP 2011120115A JP 2009277039 A JP2009277039 A JP 2009277039A JP 2009277039 A JP2009277039 A JP 2009277039A JP 2011120115 A JP2011120115 A JP 2011120115A
Authority
JP
Japan
Prior art keywords
tile
pixel data
image processing
tiles
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.)
Withdrawn
Application number
JP2009277039A
Other languages
Japanese (ja)
Inventor
Jun Nishiyama
淳 西山
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 JP2009277039A priority Critical patent/JP2011120115A/en
Publication of JP2011120115A publication Critical patent/JP2011120115A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Storing Facsimile Image Data (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve a problem that, in the case of the division of boundaries of tiles into tiles while overlapping them, a bandwidth of a memory may cause a problem and required performance cannot be obtained. <P>SOLUTION: An image processing apparatus has a buffer 504 having such a storage capacity as to store pixel data for at least one of a plurality of tiles obtained by dividing image data and the prescribed number of pixels around the relevant tile, and pixel data of tiles adjacent vertically and horizontally are stored in the buffer 504 while overlapping the tiles by shifting addresses by an amount of at least the prescribed number of pixels (S607). Each time pixel data of overlapped tiles are stored in the buffer 504, in accordance with an order of arraying a plurality of tiles, pixel data of the tiles and pixel data for the prescribed number of pixels are read from the buffer 504 and image processing is performed to the read-out pixel data. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、画像データを処理する画像処理装置及びその制御方法に関する。   The present invention relates to an image processing apparatus that processes image data and a control method thereof.

画像データを印刷する際に、その画像データに対して画像処理が施される。このような画像処理には、例えばフィルタ処理のように周辺画素を参照するものがあり、このような処理では現ラインのデータに加えて前ラインの画像データを保持しておくためのラインバッファが必要となる。印刷解像度が600dpi,1200dpiと高解像度になると必要な画像データを記憶するためのラインバッファのサイズが大きくなるため、1ページの画像データをタイル単位に分割して処理する方法が提案されている。このようなタイル分割では、周辺画素を参照する画像処理に対応するために、単純にタイル単位に分割するのではなくタイルの境界部分で画像データをオーバーラップさせて分割している。そして、画像処理が完了した後に、そのオーバーラップ部分を取り除く手法が提案されている(特許文献1参照)。   When the image data is printed, image processing is performed on the image data. In such image processing, for example, peripheral pixels are referred to like filter processing. In such processing, a line buffer for holding image data of the previous line in addition to data of the current line is provided. Necessary. When the print resolution is 600 dpi and 1200 dpi, the size of the line buffer for storing the necessary image data increases. Therefore, a method of dividing one page of image data into tile units and processing has been proposed. In such tile division, in order to deal with image processing that refers to surrounding pixels, image data is overlapped and divided at tile boundary portions instead of simply being divided into tile units. And the method of removing the overlap part after image processing is completed is proposed (refer patent document 1).

特開2005−198121号公報JP-A-2005-198121

このようにタイルの境界部分をオーバーラップさせてタイルに分割する場合は、例えば、メモリに非圧縮のラスタデータを展開し、そのラスタデータを読み出しながらオーバーラップさせたタイルを作成することが考えられる。しかしこの場合は、メモリのバンド幅が問題となり必要なパフォーマンスを得られない。一方、メモリに圧縮データを展開した場合は、ラスタデータをどのような単位で圧縮するか、どの圧縮データを読み出してオーバーラップタイルを作成するかが問題となる。   In this way, when the tile boundary is overlapped and divided into tiles, for example, uncompressed raster data is developed in a memory, and overlapping tiles can be created while reading the raster data. . In this case, however, the bandwidth of the memory becomes a problem and the required performance cannot be obtained. On the other hand, when the compressed data is expanded in the memory, there is a problem in what unit the raster data is compressed and which compressed data is read to create the overlap tile.

本発明の目的は上記従来技術の問題点を解決することにある。   An object of the present invention is to solve the above-mentioned problems of the prior art.

本願発明の特徴は、メモリのバンド幅を考慮することなく、オーバーラップタイルを作成できる技術を提供することにある。   A feature of the present invention is to provide a technique capable of creating an overlap tile without considering the memory bandwidth.

上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
画像データを複数のタイルに分割する手段と、
少なくとも1つの前記タイル分の画素データと当該タイルの周辺の所定数の画素を記憶できる記憶容量を有する記憶手段と、
上或いは下方向と左或いは右に隣接する前記タイルの画素データを、少なくとも前記所定数の画素分、アドレスをずらして前記記憶手段にオーバーラップさせて記憶するためのアドレスを発生するアドレス生成手段と、
オーバーラップされた前記タイルの画素データが前記記憶手段に記憶される度に、前記複数のタイルの配列順番に応じて前記記憶手段から前記タイルの画素データと前記所定数の画素分の画素データを読み出す読出し手段と、
前記読出し手段により読み出された画素データに対して画像処理を実行する画像処理手段とを有することを特徴とする。
In order to achieve the above object, an image processing apparatus according to an aspect of the present invention has the following arrangement. That is,
Means for dividing the image data into a plurality of tiles;
Storage means having a storage capacity capable of storing pixel data for at least one tile and a predetermined number of pixels around the tile;
Address generating means for generating an address for storing the pixel data of the tile adjacent to the left or right in the upward or downward direction at least by the predetermined number of pixels while shifting the address to overlap the storage means; ,
Each time pixel data of the overlapped tile is stored in the storage unit, the pixel data of the tile and the pixel data for the predetermined number of pixels are stored from the storage unit according to the arrangement order of the plurality of tiles. Reading means for reading; and
And image processing means for executing image processing on the pixel data read by the reading means.

本発明によれば、メモリのバンド幅を考慮することなく、オーバーラップタイルを作成できる。またオーバーラップタイルを作成するためのラインバッファが不要になるという効果がある。   According to the present invention, overlapping tiles can be created without considering the memory bandwidth. In addition, there is an effect that a line buffer for creating an overlap tile becomes unnecessary.

本発明の実施形態に係る画像処理装置の構成を示すブロック図。1 is a block diagram showing a configuration of an image processing apparatus according to an embodiment of the present invention. 本実施形態に係るRIPにより描画された画像データを説明する図。FIG. 5 is a view for explaining image data drawn by RIP according to the embodiment. パケット作成部が作成したパケットがメインメモリに保存される様子を説明する図。The figure explaining a mode that the packet which the packet preparation part produced is preserve | saved at the main memory. パケット送信部がパケットを読み出す順番を示す図(A)、パケット送信部がパケットを読み出す処理を示すフローチャート(B)。The figure which shows the order from which a packet transmission part reads a packet (A), The flowchart which shows the process in which a packet transmission part reads a packet (B). 本実施形態に係るパケット受信部の構成を示すブロック図。The block diagram which shows the structure of the packet receiver which concerns on this embodiment. 本実施形態に係るパケット受信部の動作を説明するフローチャート。The flowchart explaining operation | movement of the packet receiving part which concerns on this embodiment. JPEG復号器が復号したMCUをMCUバッファに書き込む処理を説明する図。The figure explaining the process which writes the MCU which the JPEG decoder decoded into the MCU buffer. ラスタDMACがオーバーラップタイルを作成する処理を説明するフローチャート。The flowchart explaining the process in which raster DMAC produces an overlap tile. フィルタ処理の例を説明する図で、(A)は7×7のフィルタ処理の一例を示す図、(B)は、フィルタ処理を説明するフローチャートである。It is a figure explaining the example of a filter process, (A) is a figure which shows an example of a 7 * 7 filter process, (B) is a flowchart explaining a filter process.

以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。   Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The following embodiments do not limit the present invention according to the claims, and all combinations of features described in the embodiments are not necessarily essential to the solution means of the present invention. .

図1は、本発明の実施形態に係る画像処理装置の構成を示すブロック図である。   FIG. 1 is a block diagram showing a configuration of an image processing apparatus according to an embodiment of the present invention.

PC101はページ記述言語(PDL)データをネットワーク102経由で本実施形態に係る画像処理装置100に送信する。画像処理装置100では、CPU114によって制御されるネットワークコントローラ(NIC)110がPDLデータを受信し、バススイッチ113経由でメインメモリ111に保存する。PDLデータの保存が終了するとCPU114がPDLデータをディスプレイリスト(DL)に変換する。その後、RIP(Raster Image Processor)115がメインメモリ111からDLを読み出してピクセル単位の画像データに描画する。   The PC 101 transmits page description language (PDL) data to the image processing apparatus 100 according to the present embodiment via the network 102. In the image processing apparatus 100, a network controller (NIC) 110 controlled by the CPU 114 receives the PDL data and stores it in the main memory 111 via the bus switch 113. When the storage of the PDL data ends, the CPU 114 converts the PDL data into a display list (DL). Thereafter, a RIP (Raster Image Processor) 115 reads DL from the main memory 111 and draws it in image data in units of pixels.

図2(A)(B)は、本実施形態に係るRIP115により描画された画像データを説明する図である。   2A and 2B are diagrams for explaining image data drawn by the RIP 115 according to the present embodiment.

図2(A)に示すように、1ページの画像データ201を分割したタイル202単位で描画する。例えば、タイル(0,0),タイル(1,0),…,タイル(x,y)の順番で描画する。RIP115は、この描画したタイルをパケット作成部116に出力する。本実施形態では、タイルサイズを32×32(画素)とし、タイルの周辺に8画素を付加したオーバーラップタイルを作成する。   As shown in FIG. 2A, one page of image data 201 is drawn in units of divided tiles 202. For example, drawing is performed in the order of tile (0, 0), tile (1, 0),..., Tile (x, y). The RIP 115 outputs the drawn tile to the packet creation unit 116. In the present embodiment, an overlap tile is created in which the tile size is 32 × 32 (pixels) and 8 pixels are added around the tile.

パケット作成部116は、バススイッチ113を介して受け取ったタイルをJPEG圧縮する。このJPEG圧縮では、最小符号化ユニット(MCU)203と呼ばれる8×8(画素)の画像データ単位で圧縮する。   The packet creation unit 116 JPEG compresses the tile received via the bus switch 113. In this JPEG compression, compression is performed in units of 8 × 8 (pixel) image data called a minimum encoding unit (MCU) 203.

図2(A)に示すように、タイル202を(4×4=16)個のMCUに分割してJPEG圧縮する。また図2(B)に示すように、パケット作成部116が作成するパケット205は、パケットヘッダ207とパケットデータ206で構成される。パケットヘッダ207にはパケットの情報が格納され、パケットデータ206にはJPEG圧縮データが格納される。   As shown in FIG. 2A, the tile 202 is divided into (4 × 4 = 16) MCUs and JPEG compressed. As shown in FIG. 2B, the packet 205 created by the packet creation unit 116 includes a packet header 207 and packet data 206. The packet header 207 stores packet information, and the packet data 206 stores JPEG compressed data.

図3は、パケット作成部116が作成したパケットがメインメモリ111に保存される様子を説明する図である。   FIG. 3 is a diagram for explaining how a packet created by the packet creation unit 116 is stored in the main memory 111.

パケットテーブル301は、ページを構成するパケットの個数分の要素を持ち、各要素は各パケットがメインメモリ111上の何処にあるかを示す。各タイルは図2(A)に示すようにページ内での(x,y)座標からなる固有のID(識別子)を有し、各パケットも格納している対応するタイルと同じIDを有する。パケットテーブル301は、そのページ内の任意のタイルを含むパケットを読み出す際に使用される。   The packet table 301 has elements for the number of packets constituting the page, and each element indicates where each packet is on the main memory 111. Each tile has a unique ID (identifier) consisting of (x, y) coordinates in the page as shown in FIG. 2A, and each tile has the same ID as the corresponding tile storing the packet. The packet table 301 is used when reading a packet including an arbitrary tile in the page.

このようにしてパケット作成部116が1ページ分のパケットを作成し終えると、次にパケット送信部112がパケットテーブル301を参照してパケットを読み出しパケット受信部120に送信する。   When the packet creation unit 116 finishes creating a packet for one page in this way, the packet transmission unit 112 next reads the packet with reference to the packet table 301 and transmits the packet to the packet reception unit 120.

図4(A)は、パケット送信部112がパケットを読み出す順番を示す。また図4(B)は、パケット送信部112がパケットを読み出す処理を示すフローチャートである。   FIG. 4A shows the order in which the packet transmission unit 112 reads packets. FIG. 4B is a flowchart illustrating processing in which the packet transmission unit 112 reads a packet.

ここで図4(B)のフローチャートを参照してパケット送信部112の動作を説明する。以下のステップは全てパケット送信部112の処理である。   Here, the operation of the packet transmission unit 112 will be described with reference to the flowchart of FIG. The following steps are all processing of the packet transmission unit 112.

S402では、読み出すパケットのIDを指定する変数x,yをともに「0」(左上のパケット)に初期化する。次にS403では、パケット(x,y)をメインメモリ111から読み出しパケット受信部120に送信する。またS404で、パケット(x,y+1)(S403で送信したパケットの下のパケット)をメインメモリ111から読み出してパケット受信部120に送信する。次にS405で、xの値が最大値(x_max)かどうか(右端のパケットかどうか)を判定する。右端のパケットでなければS406に進み、xをインクリメント(+1)してS403に戻る。S405で右端のパケットであると判定するとS407に進み、yの値が最大値(y_max)−1であるかどうか(下端−1のパケット)かどうかを判定する。下端−1のパケットでなければS408に進み、xを0に初期化し、yをインクリメントしてS403に戻る。またS407で、下端−1のパケットであれば、この処理を終了する。   In S402, variables x and y specifying the ID of the packet to be read are both initialized to “0” (upper left packet). In step S <b> 403, the packet (x, y) is read from the main memory 111 and transmitted to the packet receiving unit 120. In S404, the packet (x, y + 1) (the packet below the packet transmitted in S403) is read from the main memory 111 and transmitted to the packet receiving unit 120. In step S405, it is determined whether or not the value of x is the maximum value (x_max) (whether it is a rightmost packet). If it is not the rightmost packet, the process proceeds to S406, x is incremented (+1), and the process returns to S403. If it is determined in S405 that the packet is the rightmost packet, the process proceeds to S407, and it is determined whether the value of y is the maximum value (y_max) -1 or not (the packet of the lowermost value-1). If it is not the lower end packet, the process proceeds to S408, x is initialized to 0, y is incremented, and the process returns to S403. In S407, if the packet is at the lower end -1, this processing ends.

図5は、本実施形態に係るパケット受信部120の構成を示すブロック図である。   FIG. 5 is a block diagram illustrating a configuration of the packet receiving unit 120 according to the present embodiment.

DMAC501はパケットを受信し、パケットからJPEGコードを取り出しコードバッファ502に書き込む。その後、JPEG復号器(伸張器)503がコードバッファ502からJPEGコードを読み出してMCU単位でデコードし、その結果得られる画像データをMCUバッファ504に書き込む。ここでMCUバッファ504は、6×6個のMCU分の画素データ(48×48画素)を記憶する場合で示している。MCUバッファ504にオーバーラップタイルを作成するのに必要なデータが揃うと、ラスタDMAC505がMCUバッファ504から画像データを読み出しオーバーラップタイルを作成する。   The DMAC 501 receives the packet, extracts the JPEG code from the packet, and writes it in the code buffer 502. Thereafter, the JPEG decoder (decompressor) 503 reads the JPEG code from the code buffer 502, decodes it in MCU units, and writes the resulting image data to the MCU buffer 504. Here, the MCU buffer 504 is shown in the case of storing pixel data (48 × 48 pixels) for 6 × 6 MCUs. When the data necessary for creating the overlap tile is prepared in the MCU buffer 504, the raster DMAC 505 reads the image data from the MCU buffer 504 and creates the overlap tile.

図6は、本実施形態に係るパケット受信部120の動作を説明するフローチャートである。   FIG. 6 is a flowchart for explaining the operation of the packet receiving unit 120 according to the present embodiment.

まずS602で動作を制御するための変数x,y,offsetをx=0,y=0,offset=2に初期化する。次にS603,S604で、図4のS403,S404で送信された2つのパケットを受信すると、S605でx=0(左端のタイル)であるかどうかを判定する。左端のタイルであれば、まだオーバーラップタイルを作成できないのでS606に進み、xをインクリメントしてS603に戻る。S605で左端のタイルでない場合はS607に進み、オーバーラップタイルを作成する。次にS608に進み、xが最大値(x_max)かどうか(右端のタイルかどうか)を判定する。右端のタイルでなければS609に進み、xをインクリメント、offset=offset+4としてS603に戻る。ここで、変数offsetはJPEG復号器503がデコードしたMCUをMCUバッファ504の何処に書き込むかを制御するための変数である。変数offsetは、0→1→2→3→4→5→0→1,…と変化する。例えば、offset値が「2」であるときに+4すると「0」になる(モジュール6の計算を行う)。MCUバッファ504の動作は後で詳細に記述する。S608で右端のタイルであると判定するとS610に進み、yが最大値(y_max)−1((下端−1)のタイル)であるかどうかを判定する。(下端−1)のタイルでなければS611に進み、yをインクリメント、x=0,offset=offset+2としてS603に戻る。一方、S610で、(下端−1)のタイルであると判定すると、この処理を終了する。   In step S602, variables x, y, and offset for controlling the operation are initialized to x = 0, y = 0, and offset = 2. Next, when the two packets transmitted in S403 and S404 in FIG. 4 are received in S603 and S604, it is determined whether or not x = 0 (leftmost tile) in S605. If it is the leftmost tile, an overlap tile cannot be created yet, so the process proceeds to S606, x is incremented, and the process returns to S603. If it is not the leftmost tile in S605, the process proceeds to S607 to create an overlap tile. In step S608, it is determined whether x is the maximum value (x_max) (whether it is the rightmost tile). If it is not the rightmost tile, the process proceeds to S609, x is incremented, offset = offset + 4 is set, and the process returns to S603. Here, the variable offset is a variable for controlling where the MCU decoded by the JPEG decoder 503 is written in the MCU buffer 504. The variable offset changes as 0 → 1 → 2 → 3 → 4 → 5 → 0 → 1,. For example, when the offset value is “2”, if it is +4, it becomes “0” (module 6 is calculated). The operation of the MCU buffer 504 will be described in detail later. If it is determined in step S608 that the tile is the rightmost tile, the process advances to step S610, and it is determined whether y is the maximum value (y_max) -1 (the tile of (lower end-1)). If it is not the tile of (lower end-1), the process proceeds to S611, y is incremented, x = 0, offset = offset + 2, and the process returns to S603. On the other hand, if it is determined in step S610 that the tile is (lower end-1), this process ends.

図7は、JPEG復号器503がデコードしたMCUをMCUバッファ504に書き込む処理を説明する図である。   FIG. 7 is a diagram for explaining processing for writing the MCU decoded by the JPEG decoder 503 into the MCU buffer 504.

MCUバッファ504の何処に書き込むかは、図6のフローチャートで計算する変数x,offsetと、S603で受信したパケットのタイルか、S604で受信したパケットのタイルかどうかで異なる。変数xが「0」のタイル(左端のタイル)をS603で受信した場合を図7(A)に、S604で受信した場合を図7(B)に示す。また変数xが「0」でないタイルをS603で受信した場合を図7(C)に、S604で受信した場合を図7(D)に示す。尚、図7に示すMCUの番号は図2に示すMCUの番号に対応する。   The writing location in the MCU buffer 504 differs depending on whether the variable x, offset calculated in the flowchart of FIG. 6 is the tile of the packet received in S603 or the tile of the packet received in S604. FIG. 7A shows a case where a tile having a variable x “0” (leftmost tile) is received in S603, and FIG. 7B shows a case where the variable x is received in S604. FIG. 7C shows a case where a tile whose variable x is not “0” is received in S603, and FIG. 7D shows a case where a tile is received in S604. The MCU numbers shown in FIG. 7 correspond to the MCU numbers shown in FIG.

次に図7(E),(F),(G),(H)を参照して最初の10個(タイル(0,0)〜(4,0)、(0,1)〜(4,1))のタイルを受信した際の処理を例にして動作を説明する。   Next, referring to FIGS. 7E, 7F, 7G, 7H, the first 10 tiles (tiles (0, 0) to (4, 0), (0, 1) to (4, 4)) are displayed. The operation will be described by taking an example of processing when the tile 1)) is received.

最初のタイル(0,0)は、図7(A)の場合に該当し、図7(E)で示すようにタイルの右半分(図2(A)のMCU2,3,6,7,10,11,14,15)をMCUバッファ504の(0,0)〜(1,3)の矩形領域700に書き込む。2番目のタイル(0,1)は図7(B)の場合に該当し、図7(E)に示すように右上の16×16画素(図2(A)のMCU2,3,6,7)のみをMCUバッファ504の(0,4)〜(1,5)の矩形領域701に書き込む。次に3番目のタイル(1,0)は図7(C)の場合に該当し図7(E)に示すようにタイル全部をMCUバッファ504の(2,0)〜(5,3)の矩形領域703に書き込む。offset=2の4番目のタイル(1,1)は、図7(D)の場合に該当し、図7(E)に示すようにタイルの上半分をMCUバッファ504の(2,4)〜(5,5)の矩形領域704に書き込む。この段階で最初のオーバーラップタイルを作成する。MCUバッファ504からデータを読み出してオーバーラップタイルを作成する方法は後述のラスタDMAC505の動作で説明する。   The first tile (0, 0) corresponds to the case of FIG. 7A, and as shown in FIG. 7E, the right half of the tile (MCU 2, 3, 6, 7, 10 of FIG. 2A). , 11, 14, 15) are written in the rectangular area 700 of (0, 0) to (1, 3) of the MCU buffer 504. The second tile (0, 1) corresponds to the case of FIG. 7B, and as shown in FIG. 7E, the upper right 16 × 16 pixels (MCUs 2, 3, 6, 7 in FIG. 2A). ) Only in the rectangular area 701 of (0, 4) to (1, 5) of the MCU buffer 504. Next, the third tile (1, 0) corresponds to the case of FIG. 7C, and all the tiles of (2, 0) to (5, 3) of the MCU buffer 504 as shown in FIG. Write to the rectangular area 703. The fourth tile (1, 1) with offset = 2 corresponds to the case of FIG. 7D, and the upper half of the tile is moved to (2, 4) to (2) of the MCU buffer 504 as shown in FIG. Write to the rectangular area 704 of (5, 5). Create the first overlap tile at this stage. A method of creating an overlap tile by reading data from the MCU buffer 504 will be described in the operation of the raster DMAC 505 described later.

5番目のタイル(2,0)は図7(C)の場合に該当し、図7(F)に示すようにタイル全部をMCUバッファ504の(0,0)〜(3,3)の矩形領域705に書き込む(offset=0)。6番目のタイル(2,1)は図7(D)の場合に該当し、図7(F)に示すようにタイルの上半分をMCUバッファ504の(0,4)〜(3,5)の矩形領域706に書き込む(offset=0)。これによって前の2タイルのデータのうち、矩形領域705,706に相当する左半分の矩形領域は、これらタイル(2,0)、タイル(2,1)で上書きされて消えてしまう。しかし、右半分の矩形領域707,708に該当する(4,0)〜(5,5)には、図7(E)のデータがそのまま残っている。この段階で2番目のオーバーラップタイルを作成する。   The fifth tile (2, 0) corresponds to the case of FIG. 7C, and all the tiles are rectangles (0, 0) to (3, 3) of the MCU buffer 504 as shown in FIG. 7F. Write to area 705 (offset = 0). The sixth tile (2, 1) corresponds to the case of FIG. 7D, and the upper half of the tile is placed in the MCU buffer 504 at (0, 4) to (3, 5) as shown in FIG. Is written in the rectangular area 706 (offset = 0). As a result, the left half rectangular area corresponding to the rectangular areas 705 and 706 of the previous two tile data is overwritten with these tiles (2, 0) and tiles (2, 1) and disappears. However, the data of FIG. 7E remains in (4, 0) to (5, 5) corresponding to the rectangular regions 707 and 708 in the right half. At this stage, a second overlap tile is created.

7番目のタイル(3,0)は、図7(C)の場合に該当し、図7(G)に示すようにタイルの左半分を矩形領域(4,0)〜(5,3)の矩形領域709に、右半分を矩形領域(0,0)〜(1,3)の矩形領域710に書き込む(offset=4)。また8番目のタイル(3,1)は図7(D)の場合に該当し、図7(G)に示すようにタイルの左上半分を領域(4,4)〜(5,5)の矩形領域711に、右上半分を矩形領域(0,4)〜(1,5)の矩形領域712に書き込む(offset=4)。これにより矩形領域709〜712にはタイル(3,0)、(3,1)のデータが書き込まれ、Tile(2,0),Tile(2,1)で示す領域では図7(F)のデータがそのまま残っている。この段階で3番目のオーバーラップタイルを作成する。   The seventh tile (3, 0) corresponds to the case of FIG. 7C. As shown in FIG. 7G, the left half of the tile is the rectangular area (4, 0) to (5, 3). In the rectangular area 709, the right half is written into the rectangular area 710 of the rectangular areas (0, 0) to (1, 3) (offset = 4). The eighth tile (3, 1) corresponds to the case of FIG. 7D, and the upper left half of the tile is a rectangle of regions (4, 4) to (5, 5) as shown in FIG. 7G. In the area 711, the upper right half is written into the rectangular areas 712 of the rectangular areas (0, 4) to (1, 5) (offset = 4). As a result, the data of the tiles (3, 0) and (3, 1) are written in the rectangular areas 709 to 712. In the areas indicated by Tile (2, 0) and Tile (2, 1), the data shown in FIG. The data remains intact. At this stage, a third overlap tile is created.

9番目のタイル(4,0)は図7(C)の場合に該当し、図7(H)に示すようにタイル全部をMCUバッファ504の(2,0)〜(5,3)の矩形領域713に書き込む(offset=2)。また10番目のタイル(4,1)は図7(D)の場合に該当し、図7(H)に示すようにタイルの上半分をMCUバッファ504の(2,4)〜(5,5)の矩形領域714に書き込む(offset=2)。ここでもTile(3,0),Tile(3,1)で示す領域では図7(G)の矩形領域710,712のデータがそのまま残っている。この段階で4番目のオーバーラップタイルを作成する。   The ninth tile (4, 0) corresponds to the case of FIG. 7C, and all the tiles are rectangles (2, 0) to (5, 3) of the MCU buffer 504 as shown in FIG. Write to area 713 (offset = 2). The tenth tile (4, 1) corresponds to the case of FIG. 7D, and the upper half of the tile is placed in the MCU buffer 504 at (2, 4) to (5, 5) as shown in FIG. ) In the rectangular area 714 (offset = 2). Again, in the areas indicated by Tile (3, 0) and Tile (3, 1), the data of the rectangular areas 710 and 712 in FIG. At this stage, a fourth overlap tile is created.

ここで、図7(H)の形は図7(E)の形と同じであり、MCUバッファ504の使い方としては図7(E)から(H)をS603〜S608で繰り返し、S610で初期状態である図7(E)に戻る。   Here, the shape of FIG. 7 (H) is the same as the shape of FIG. 7 (E), and the MCU buffer 504 is used by repeating FIG. 7 (E) to (H) in S603 to S608, and in S610 the initial state. Returning to FIG.

図8は、図6のS607でラスタDMAC505がMCUバッファ504からデータを読み出してオーバーラップタイルを作成する処理を説明するフローチャートである。変数a,bはデータを読み出すMCUバッファ504を指定するための変数で、変数i,jはMCUバッファ504(a,b)から読み出す画素を指定する変数である。またラスタDMAC505はS806で変数a,b,i,jで指定される1画素を読み出す。変数i,j,a,bはそれぞれS807,S809,S811,S813で所定の値まで到達したかどうか判定され、到達していなければそれぞれS808,S810,S812,S814でインクリメントされる。これら各ステップ(S)で,所定の値まで到達していれば次のステップに移る。変数a,b,i,jは、a,j,bの順番の多重ループでインクリメントされる。変数iのインクリメントは、MCUバッファ504(a,b)のjライン目の8画素を読み出すためのものである。変数aのインクリメントは、8画素を読み出す毎に読み出すMCUバッファ504を右に移動するためのものである。   FIG. 8 is a flowchart for explaining processing in which the raster DMAC 505 reads data from the MCU buffer 504 and creates an overlap tile in step S607 of FIG. Variables a and b are variables for designating the MCU buffer 504 from which data is read, and variables i and j are variables for designating pixels to be read from the MCU buffer 504 (a, b). The raster DMAC 505 reads one pixel designated by the variables a, b, i, and j in step S806. It is determined whether the variables i, j, a, and b have reached predetermined values in S807, S809, S811, and S813, respectively. If not, the variables i, j, a, and b are incremented in S808, S810, S812, and S814, respectively. In each of these steps (S), if a predetermined value is reached, the process proceeds to the next step. Variables a, b, i, j are incremented in multiple loops in the order of a, j, b. The increment of the variable i is for reading the 8th pixel in the jth line of the MCU buffer 504 (a, b). The increment of the variable a is for moving the MCU buffer 504 to be read to the right every time 8 pixels are read.

図7(E),(F),(G),(H)を参照しながら最初の4オーバーラップタイルを作成する際の処理を例にして変数aの変化を説明する。図6のS607で1番目のオーバーラップタイルを作成する場合(MCUバッファ504は図7(E)の状態)は、変数aは0,1,2,3,4,5と変化していく。2番目のオーバーラップを作成する場合(MCUバッファ504は図7(F)の状態)、変数aは4,5,0,1,2,3と変化していく。3番目のオーバーラップを作成する場合(MCUバッファ504は図7(G)の状態)は、変数aは2,3,4,5,0,1と変化していく。そして4番目のオーバーラップを作成する場合(MCUバッファ504は図7(H)の状態)は、変数aは1番目のオーバーラップを作成する場合と同様に、0,1,2,3,4,5と変化していく。この変数aの先頭と最後の値はS816で更新されるstart_muc_x,last_mcu_xにより制御される。変数j,bのインクリメントは、6個のMCUバッファ504からそれぞれ8画素ずつ合計48画素のオーバーラップタイルの1ライン分を読み出した後に次のラインの読み出しに移行するためのものである。変数start_mcu,last_mcuは変数aの遷移を制御するための変数であり、S802で初期化されてS816でオーバーラップタイルを作成する毎に更新される。この図8のS802〜S816の処理により、図7(E)〜(H)に示すようにMCUバッファ504に格納された画素データが、各タイルの周辺に8画素が付加されたオーバーラップタイルとして読み出される。   The change of the variable a will be described with reference to FIGS. 7E, 7F, 7G, and 7H, taking as an example processing for creating the first four overlap tiles. When the first overlap tile is created in S607 of FIG. 6 (the MCU buffer 504 is in the state of FIG. 7E), the variable a changes to 0, 1, 2, 3, 4, and 5. When creating the second overlap (MCU buffer 504 is in the state shown in FIG. 7F), variable a changes to 4, 5, 0, 1, 2, and 3. When the third overlap is created (MCU buffer 504 is in the state shown in FIG. 7G), the variable a changes to 2, 3, 4, 5, 0, 1. When the fourth overlap is created (MCU buffer 504 is in the state of FIG. 7H), variable a is 0, 1, 2, 3, 4 as in the case of creating the first overlap. , 5 will change. The first and last values of this variable a are controlled by start_muc_x and last_mcu_x updated in S816. The increments of the variables j and b are for reading out one line of the overlap tile of 48 pixels in total, each of 8 pixels from the 6 MCU buffers 504, and then shifting to reading of the next line. The variables start_mcu and last_mcu are variables for controlling the transition of the variable a, and are initialized every time an overlap tile is created in S816 after being initialized in S802. As a result of the processing of S802 to S816 in FIG. 8, the pixel data stored in the MCU buffer 504 as an overlap tile in which 8 pixels are added to the periphery of each tile as shown in FIGS. Read out.

このようにしてパケット受信部120で作成されたオーバーラップタイルの各画素は、色変換部121に送られてCMYKに変換されフィルタ処理部122に送られる。フィルタ処理部122はC,M,Y,Kの各版がずれることによって白抜けが発生するのを防ぐためにオブジェクトを太らせる処理を行う。その処理はフィルタ処理によって実現される。   In this way, each pixel of the overlap tile created by the packet reception unit 120 is sent to the color conversion unit 121, converted into CMYK, and sent to the filter processing unit 122. The filter processing unit 122 performs a process of fattening the object in order to prevent white spots from occurring due to displacement of the C, M, Y, and K plates. The process is realized by a filter process.

図9(A)は、7×7のフィルタ処理の例を示す図である。図9(A)に示すd(*,*)は1画素を示し、注目画素900はd(0,0)であり、その周辺画素は参照画素である。フィルタ処理では各画素d(*,*)に対応する係数c(*,*)を掛けた値を足し合わせた結果を出力とする。図9(B)は、フィルタ処理を説明するフローチャートである。   FIG. 9A is a diagram illustrating an example of 7 × 7 filter processing. In FIG. 9A, d (*, *) indicates one pixel, the target pixel 900 is d (0,0), and its peripheral pixels are reference pixels. In the filter processing, a result obtained by adding the values obtained by multiplying each pixel d (*, *) by the coefficient c (*, *) is output. FIG. 9B is a flowchart for explaining the filter processing.

S902、S903で変数i,jをともに「−3」にする初期化を行う。そしてS904で画素d(i,j)に係数c(i,j)を掛けた結果を最終的な出力となるout_dataに足し合わす。S905、S907で、変数i,jが所定の値(「3」)に達したかどうかを判定し、所定の値に達していなければS906,S908でインクリメントする。フィルタ処理部122は、これら周辺画素を参照する7×7フィルタ処理を行う。フィルタ処理部122は、こうして処理した画素を階調処理部123に送信する。   In S902 and S903, the variables i and j are both initialized to "-3". In step S904, the result obtained by multiplying the pixel d (i, j) by the coefficient c (i, j) is added to out_data as the final output. In S905 and S907, it is determined whether or not the variables i and j have reached a predetermined value (“3”). If the variables i and j have not reached the predetermined value, the process increments in S906 and S908. The filter processing unit 122 performs 7 × 7 filter processing that refers to these peripheral pixels. The filter processing unit 122 transmits the processed pixel to the gradation processing unit 123.

階調処理部123は、このフィルタ処理部122から受け取った画素をハーフトンデータに変換してスムージング処理部124に送信する。スムージング処理部124は、文字等のエッジ部分を滑らかにする処理を行う。この処理もフィルタ処理部122の処理と同じくフィルタ処理によって実現される。フィルタ処理では係数を調節することにより様々な処理を行うことができる。スムージング処理部124は処理した画素を出力部125に送信する。出力部125は、スムージング処理部124から受け取った画素のうちオーバーラップ部分を読み捨て、それ以外の部分のみをスプールメモリ126に保存する。そして出力部125は、ページを構成する全てのタイルを受信するとスプールメモリ126から画素をページラスタ順で読み出してプリンタ部130に送信する。そして、プリンタ部130が用紙に印刷する。   The gradation processing unit 123 converts the pixel received from the filter processing unit 122 into halftone data and transmits the halftone data to the smoothing processing unit 124. The smoothing processing unit 124 performs processing for smoothing edge portions such as characters. This process is also realized by the filter process similar to the process of the filter processing unit 122. In the filter process, various processes can be performed by adjusting the coefficient. The smoothing processing unit 124 transmits the processed pixels to the output unit 125. The output unit 125 discards the overlapping portion of the pixels received from the smoothing processing unit 124 and stores only the other portion in the spool memory 126. When the output unit 125 receives all the tiles constituting the page, the output unit 125 reads out the pixels from the spool memory 126 in the page raster order and transmits them to the printer unit 130. Then, the printer unit 130 prints on the paper.

以上説明したように本実施形態によれば、1ページの画像データを複数のタイルに分割し、各タイルを複数のMCUに分割して符号化してメモリに格納する。JPEG復号器がそのJPEGコードをMCU単位で復号し、その結果得られる画像データをMCUバッファに格納する。ここではMCUバッファは、少なくとも1つのタイル分の画素データとその周辺の所定数の画素を記憶できる記憶容量を有する。そして少なくとも上或いは下方向と左或いは右に隣接してオーバーラップが発生するタイルの画素データが記憶される度に、そのMCUバッファに記憶された画素データを読み出して、周辺画素を参照して画像処理を行う画像処理部に出力する。更に、このMCUバッファにタイルの画素データを記憶する際には、その所定数の画素分、各タイルデータの書き込みアドレス(位置)をずらした書き込みアドレスを生成する(アドレス生成)。これにより前回MCUバッファに記憶されたタイルの画素データの一部(後続のタイル側)が残された状態で次のタイルの画素データが書き込まれる。そして現在MCUバッファに記憶されたタイルの画素データを、前回記憶されたタイルの画素データの周辺画素を含んだ状態で、元のタイルの配列順番で読出すことができる。これによりメモリのバンド幅を考慮することなく、オーバーラップタイルを作成できるという効果がある。またオーバーラップタイルを作成するためのラインバッファが不要になるという効果も得られる。   As described above, according to the present embodiment, one page of image data is divided into a plurality of tiles, each tile is divided into a plurality of MCUs, encoded, and stored in a memory. The JPEG decoder decodes the JPEG code in MCU units, and stores the resulting image data in the MCU buffer. Here, the MCU buffer has a storage capacity capable of storing pixel data for at least one tile and a predetermined number of pixels around it. Then, every time pixel data of a tile that overlaps at least in the upward or downward direction and left or right is stored, the pixel data stored in the MCU buffer is read out and an image is referenced with reference to surrounding pixels. The data is output to the image processing unit that performs processing. Further, when storing tile pixel data in this MCU buffer, a write address is generated by shifting the write address (position) of each tile data by the predetermined number of pixels (address generation). As a result, the pixel data of the next tile is written in a state where a part of the pixel data of the tile previously stored in the MCU buffer (the subsequent tile side) remains. Then, the pixel data of the tile currently stored in the MCU buffer can be read out in the order of the original tile arrangement in a state including the peripheral pixels of the previously stored tile pixel data. Accordingly, there is an effect that overlap tiles can be created without considering the memory bandwidth. In addition, there is an effect that a line buffer for creating an overlap tile becomes unnecessary.

(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
(Other examples)
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, etc.) of the system or apparatus reads the program. It is a process to be executed.

Claims (8)

画像データを複数のタイルに分割する手段と、
少なくとも1つの前記タイル分の画素データと当該タイルの周辺の所定数の画素を記憶できる記憶容量を有する記憶手段と、
上或いは下方向と左或いは右に隣接する前記タイルの画素データを、少なくとも前記所定数の画素分、アドレスをずらして前記記憶手段にオーバーラップさせて記憶するためのアドレスを発生するアドレス生成手段と、
オーバーラップされた前記タイルの画素データが前記記憶手段に記憶される度に、前記複数のタイルの配列順番に応じて前記記憶手段から前記タイルの画素データと前記所定数の画素分の画素データを読み出す読出し手段と、
前記読出し手段により読み出された画素データに対して画像処理を実行する画像処理手段と、
を有することを特徴とする画像処理装置。
Means for dividing the image data into a plurality of tiles;
Storage means having a storage capacity capable of storing pixel data for at least one tile and a predetermined number of pixels around the tile;
Address generating means for generating an address for storing the pixel data of the tile adjacent to the left or right in the upward or downward direction at least by the predetermined number of pixels while shifting the address to overlap the storage means; ,
Each time pixel data of the overlapped tile is stored in the storage unit, the pixel data of the tile and the pixel data for the predetermined number of pixels are stored from the storage unit according to the arrangement order of the plurality of tiles. Reading means for reading; and
Image processing means for performing image processing on the pixel data read by the reading means;
An image processing apparatus comprising:
前記アドレス生成手段は、前回記憶されたタイルの画素データの内、後続のタイル側に位置する画素データを前記記憶手段に残すように、当該後続のタイルの画素データを前記記憶手段に記憶するためのアドレスを生成することを特徴とする請求項1に記載の画像処理装置。   The address generation means stores the pixel data of the subsequent tile in the storage means so that the pixel data located on the subsequent tile side among the pixel data of the tile stored previously is left in the storage means. The image processing apparatus according to claim 1, wherein the address is generated. 前記画像処理手段は、注目画素と当該注目画素の周辺画素を参照する画像処理を実行することを特徴とする請求項1又は2に記載の画像処理装置。   The image processing apparatus according to claim 1, wherein the image processing unit executes image processing that refers to a target pixel and peripheral pixels of the target pixel. 画像データを前記タイルの単位で圧縮する圧縮手段と、
前記圧縮手段で圧縮された画像データを記憶するメモリと、
前記メモリに記憶された前記圧縮された画像データを前記タイルの単位で伸張する伸張手段とを更に有することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
Compression means for compressing image data in units of tiles;
A memory for storing the image data compressed by the compression means;
4. The image processing apparatus according to claim 1, further comprising an expansion unit configured to expand the compressed image data stored in the memory in units of tiles. 5.
画像処理装置の制御方法であって、
画像データを複数のタイルに分割する工程と、
少なくとも1つの前記タイル分の画素データと当該タイルの周辺の所定数の画素を記憶できる記憶容量を有するメモリに、上或いは下方向と左或いは右に隣接する前記タイルの画素データを、少なくとも前記所定数の画素分、アドレスをずらしオーバーラップさせて記憶するためのアドレスを発生するアドレス生成工程と、
オーバーラップされた前記タイルの画素データが前記メモリに記憶される度に、前記複数のタイルの配列順番に応じて前記メモリから前記タイルの画素データと前記所定数の画素分の画素データを読み出す読出し工程と、
前記読出し工程で読み出された画素データに対して画像処理を実行する画像処理工程と、
を有することを特徴とする画像処理装置の制御方法。
A control method for an image processing apparatus, comprising:
Dividing the image data into a plurality of tiles;
In a memory having a storage capacity capable of storing at least one pixel data of the tile and a predetermined number of pixels around the tile, the pixel data of the tile adjacent to the upper or lower direction and the left or right is at least the predetermined An address generation step for generating addresses for storing by shifting and overlapping addresses by the number of pixels;
Each time pixel data of the overlapped tile is stored in the memory, reading out the pixel data of the tile and the pixel data of the predetermined number of pixels from the memory according to the arrangement order of the plurality of tiles Process,
An image processing step of performing image processing on the pixel data read in the reading step;
A control method for an image processing apparatus, comprising:
前記アドレス生成工程は、前回記憶されたタイルの画素データの内、後続のタイル側に位置する画素データを前記メモリに残すように、当該後続のタイルの画素データを前記メモリに記憶するためのアドレスを生成することを特徴とする請求項5に記載の画像処理装置の制御方法。   The address generating step is an address for storing the pixel data of the subsequent tile in the memory so that the pixel data located on the subsequent tile side among the pixel data of the tile stored previously is left in the memory. The method of controlling an image processing apparatus according to claim 5, wherein: 前記画像処理工程は、注目画素と当該注目画素の周辺画素を参照する画像処理を実行することを特徴とする請求項5又は6に記載の画像処理装置の制御方法。   The method of controlling an image processing apparatus according to claim 5, wherein the image processing step executes image processing that refers to a target pixel and peripheral pixels of the target pixel. 画像データを前記タイルの単位で圧縮する圧縮工程と、
前記圧縮工程で圧縮された画像データをメモリに記憶する工程と、
前記メモリに記憶された前記圧縮された画像データを前記タイルの単位で伸張する伸張工程とを更に有することを特徴とする請求項5乃至7のいずれか1項に記載の画像処理装置の制御方法。
A compression step of compressing image data in units of tiles;
Storing the image data compressed in the compression step in a memory;
8. The method of controlling an image processing apparatus according to claim 5, further comprising a decompressing step of decompressing the compressed image data stored in the memory in units of the tiles. .
JP2009277039A 2009-12-04 2009-12-04 Image processing apparatus and control method thereof Withdrawn JP2011120115A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009277039A JP2011120115A (en) 2009-12-04 2009-12-04 Image processing apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009277039A JP2011120115A (en) 2009-12-04 2009-12-04 Image processing apparatus and control method thereof

Publications (1)

Publication Number Publication Date
JP2011120115A true JP2011120115A (en) 2011-06-16

Family

ID=44284863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009277039A Withdrawn JP2011120115A (en) 2009-12-04 2009-12-04 Image processing apparatus and control method thereof

Country Status (1)

Country Link
JP (1) JP2011120115A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012165446A1 (en) 2011-05-30 2012-12-06 日本電気株式会社 Communication path control system, and communication path control method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012165446A1 (en) 2011-05-30 2012-12-06 日本電気株式会社 Communication path control system, and communication path control method

Similar Documents

Publication Publication Date Title
JP5538792B2 (en) Image processing apparatus, control method thereof, and program
JP4902474B2 (en) Image processing apparatus and image processing method
JP3453407B2 (en) Image processing apparatus, image output apparatus, image output system, and method thereof
JP5501041B2 (en) Image processing apparatus, image processing method, and program
US8665484B2 (en) Processing tile images including overlap regions
JP2011066720A (en) Image processing apparatus, control method, and program
JP2011120115A (en) Image processing apparatus and control method thereof
JP2002229759A (en) Code converting method for supporting image conversion
JP4525726B2 (en) Decoding device, decoding program, and image processing device
JP2018058295A (en) Image processing apparatus, image processing method and program
US9049404B2 (en) Image processing apparatus and method that perform multiple image processes, and storage medium storing a program thereof, for decompressing a compressed image according to first and second information indicating image processing to be performed
JP5581731B2 (en) Image forming apparatus, image forming method, and image forming program
JP3167684B2 (en) Context generation circuit and method for small screen
JPH0488749A (en) Picture processor
JP6886338B2 (en) Image forming device, its control method, and program
JP6775558B2 (en) Image stretcher and its control method and program
JP5731816B2 (en) Image processing apparatus and image processing method
JP4423812B2 (en) Drawing processing apparatus and drawing processing method
JP4771095B2 (en) Image compression device
JP2020090075A (en) Image formation device and image formation method
JP3997851B2 (en) Image coding apparatus and image coding program
JP2007200232A (en) Image processing apparatus and image forming apparatus
JP6140973B2 (en) Image processing apparatus, image processing method, and program
JP4667348B2 (en) Encoded data memory storage control device, method, and image processing device
JPH05205015A (en) Image processor

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130205