JP5731816B2 - Image processing apparatus and image processing method - Google Patents

Image processing apparatus and image processing method Download PDF

Info

Publication number
JP5731816B2
JP5731816B2 JP2010283732A JP2010283732A JP5731816B2 JP 5731816 B2 JP5731816 B2 JP 5731816B2 JP 2010283732 A JP2010283732 A JP 2010283732A JP 2010283732 A JP2010283732 A JP 2010283732A JP 5731816 B2 JP5731816 B2 JP 5731816B2
Authority
JP
Japan
Prior art keywords
pixel block
image processing
pixel
partial
encoded
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
JP2010283732A
Other languages
Japanese (ja)
Other versions
JP2012134669A (en
JP2012134669A5 (en
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 JP2010283732A priority Critical patent/JP5731816B2/en
Publication of JP2012134669A publication Critical patent/JP2012134669A/en
Publication of JP2012134669A5 publication Critical patent/JP2012134669A5/ja
Application granted granted Critical
Publication of JP5731816B2 publication Critical patent/JP5731816B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、画像を符号化して格納するための技術に関するものである。   The present invention relates to a technique for encoding and storing an image.

一般的な動画像処理装置では、1フレーム分の画像をメモリに格納した後、この画像をライン方向に走査しながら読み出し、画像処理モジュールに送信する。画像処理モジュールは1ライン単位や数ライン単位でピクセル処理およびフィルタ処理を行い、再度フレームバッファに書き込み出力する。   In a general moving image processing apparatus, an image for one frame is stored in a memory, and then this image is read while scanning in the line direction and transmitted to an image processing module. The image processing module performs pixel processing and filter processing in units of one line or in units of several lines, and writes and outputs again to the frame buffer.

近年の4K2Kや8K4Kといった画像の高解像度化に伴い、従来のライン処理では画像処理時に必要なラインバッファ容量やメモリ帯域が大きくなりうる。そのため、メモリコストが高くなるという問題が生じていた。メモリコスト削減のため、画像のメモリへの書き込み、読み出しの際に、リアルタイムで画素を圧縮伸張するアーキテクチャが提案されている。   With the recent increase in image resolution such as 4K2K and 8K4K, conventional line processing can increase the line buffer capacity and memory bandwidth required for image processing. Therefore, there has been a problem that the memory cost is increased. In order to reduce memory costs, an architecture has been proposed in which pixels are compressed and expanded in real time when an image is written to or read from a memory.

特許文献1では、画像を複数の矩形ブロックに分割し、矩形ブロック単位で圧縮し、圧縮された矩形ブロックを圧縮メモリの一定サイズの所定のアドレスに格納することが開示されている。圧縮アルゴリズムとしてはJPEG等の可変長変換アルゴリズムを用いている。圧縮データの書き込み時にメモリ配置アドレステーブルを設定し、圧縮データの読み出しに使用する。上記のような構成では、矩形ブロック単位で圧縮を施すため、画像処理を行う場合、圧縮された矩形ブロックを伸張した後に得られる矩形ブロックを処理する。   Patent Document 1 discloses that an image is divided into a plurality of rectangular blocks, compressed in units of rectangular blocks, and the compressed rectangular blocks are stored at predetermined addresses of a predetermined size in a compression memory. A variable length conversion algorithm such as JPEG is used as the compression algorithm. A memory allocation address table is set when compressed data is written, and is used for reading compressed data. In the above configuration, since compression is performed in units of rectangular blocks, when performing image processing, rectangular blocks obtained after decompressing the compressed rectangular blocks are processed.

特開2006−129471号公報JP 2006-129471 A

矩形ブロック単位でフィルタ処理等の画像処理を行う場合、分割境界付近の画素である境界画素の周辺の画素は、この境界画素が属する矩形ブロック内に存在しないことがあり、その結果、このような境界画素については周辺画素を参照した画像処理ができない。この場合、境界画素を複製するなどして処理することも可能であるが、分割境界の画質が悪化するため、隣接する矩形ブロックから周辺画素にあたる画素を参照することが望ましい。隣接する矩形ブロック内の画素を参照するには、処理対象の矩形ブロックと隣接する全ての矩形ブロックを読み出す必要がある。   When image processing such as filter processing is performed in units of rectangular blocks, pixels around the boundary pixel that are pixels near the division boundary may not exist in the rectangular block to which the boundary pixel belongs. For boundary pixels, image processing with reference to surrounding pixels cannot be performed. In this case, it is possible to perform processing by duplicating the boundary pixel. However, since the image quality of the division boundary deteriorates, it is desirable to refer to a pixel corresponding to a peripheral pixel from an adjacent rectangular block. In order to refer to the pixels in the adjacent rectangular block, it is necessary to read out all the rectangular blocks adjacent to the rectangular block to be processed.

特許文献1のように、矩形ブロックを所定の画素数で構成する場合、矩形ブロックの大きさが参照画素数よりも大きい場合は、不要な画素を読み出す割合が多くなるため、メモリ帯域を有効利用できないという問題がある。また、不要な画素の読み出し量を減らすため、矩形ブロックの大きさを参照画素と同等にする場合には、圧縮データの配置アドレス情報等、付加情報の増加により、メモリ帯域が圧迫されるという問題がある。   When a rectangular block is configured with a predetermined number of pixels as in Patent Document 1, if the size of the rectangular block is larger than the number of reference pixels, the ratio of reading out unnecessary pixels increases, so the memory bandwidth is effectively used. There is a problem that you can not. In addition, when the size of the rectangular block is made equal to that of the reference pixel in order to reduce the reading amount of unnecessary pixels, there is a problem that the memory bandwidth is compressed due to an increase in additional information such as the arrangement address information of the compressed data. There is.

また、JPEG等では、一般的に圧縮単位が大きいほど、効率的に圧縮可能である。そのため、矩形ブロックを小さく設定するとメモリ帯域の削減効果が少なくなる。また、画像処理回路において、参照画素を必要とするフィルタ処理回路がフレームメモリを挟んで、前段、後段と分割されている構成を想定する。この場合、前段よりも後段の参照画素数が少ない場合、矩形ブロックの大きさを最初の参照画素数に合わせて作成すると、後段では、必要のない画素の読み出しが増加する。また、矩形ブロックの大きさを後段に合わせて作成すると、前段と後段とで、読み出す矩形ブロックの数を変更しなければならないため、処理が複雑になる。   In JPEG and the like, in general, the larger the compression unit, the more efficient the compression. Therefore, if the rectangular block is set to be small, the effect of reducing the memory bandwidth is reduced. Further, in the image processing circuit, a configuration is assumed in which a filter processing circuit that requires a reference pixel is divided into a front stage and a rear stage with a frame memory interposed therebetween. In this case, when the number of reference pixels in the subsequent stage is smaller than that in the previous stage, if the size of the rectangular block is created in accordance with the initial number of reference pixels, reading of unnecessary pixels increases in the subsequent stage. In addition, if the size of the rectangular block is created in accordance with the subsequent stage, the number of rectangular blocks to be read must be changed between the previous stage and the subsequent stage, which complicates the processing.

本発明は以上の問題に鑑みてなされたものであり、隣接画素ブロック中の画素を用いるような画像処理を行うような場合であっても、画素ブロック群を格納するメモリに対するアクセスをより軽減させるための技術を提供することを目的とする。   The present invention has been made in view of the above problems, and even when image processing using pixels in adjacent pixel blocks is performed, access to a memory storing pixel block groups is further reduced. It aims at providing the technique for.

本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。即ち、複数画素から成る画素ブロックを、該画素ブロックの左側に隣接する左画素ブロックに対する画像処理において参照される該画素ブロック内の画素を含む第1の部分画素ブロック、前記画素ブロックの右側に隣接する右画素ブロックに対する画像処理において参照される該画素ブロック内の画素を含む第2の部分画素ブロック、前記画素ブロックから前記第1の部分画素ブロック及び第2の部分画素ブロックを省いた残りの部分画素ブロックである第3の部分画素ブロック、の3つの部分画素ブロックに分割する手段と、
前記第1の部分画素ブロック、前記第2の部分画素ブロック、前記第3の部分画素ブロック、のそれぞれを個別に符号化して第1の符号化部分画素ブロック、第2の符号化部分画素ブロック、第3の符号化部分画素ブロックを生成しメモリに格納する符号化手段と
を備えることを特徴とする。
In order to achieve the object of the present invention, for example, an image processing apparatus of the present invention comprises the following arrangement. That is, adjacent pixel blocks composed of a plurality of pixels, the first portion pixel block including the pixels in the pixel block to be referenced by the image processing for the left pixel block adjacent to the left side of the pixel block, the right side of the pixel block the remaining portion of omitting the second part pixel block including the pixels in the pixel block to be referenced in the image processing, the first portion pixel block and the second partial pixel block from the pixel block for the right pixel block Means for dividing into three partial pixel blocks of a third partial pixel block which is a pixel block;
The first partial pixel block, the second partial pixel block, and the third partial pixel block are individually encoded to obtain a first encoded partial pixel block, a second encoded partial pixel block, Encoding means for generating a third encoded partial pixel block and storing it in a memory.

本発明の構成により、隣接画素ブロック中の画素を用いるような画像処理を行うような場合であっても、画素ブロック群を格納するメモリに対するアクセスをより軽減させることができる。   According to the configuration of the present invention, it is possible to further reduce access to the memory storing the pixel block group even when image processing using pixels in adjacent pixel blocks is performed.

メモリ304上におけるマップを示す図。The figure which shows the map on the memory. 縦分割画像、画素ブロック、共有領域、非共有領域、符号化単位を示す図。The figure which shows a vertical division image, a pixel block, a shared area, a non-shared area, and an encoding unit. 画像処理装置の機能構成例を示すブロック図。FIG. 3 is a block diagram illustrating an example of a functional configuration of the image processing apparatus. 画像処理装置が行う処理のフローチャート。6 is a flowchart of processing performed by the image processing apparatus. 画像処理装置の機能構成例を示すブロック図。FIG. 3 is a block diagram illustrating an example of a functional configuration of the image processing apparatus. 画像処理装置が行う処理のフローチャート。6 is a flowchart of processing performed by the image processing apparatus.

以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の1つである。   Preferred embodiments of the present invention will be described below with reference to the accompanying drawings. The embodiment described below shows an example when the present invention is specifically implemented, and is one of the specific examples of the configurations described in the claims.

[第1の実施形態]
本実施形態では、1枚の画像を縦方向に分割して複数個の縦分割画像を生成する。もちろん、縦分割画像を生成するための分割数は2以上である。図2(c)ではその一例として、1枚の画像220をB0,B1,B3の3つの縦分割画像に分割している。
[First Embodiment]
In the present embodiment, a single image is divided in the vertical direction to generate a plurality of vertically divided images. Of course, the number of divisions for generating a vertically divided image is two or more. In FIG. 2C, as an example, one image 220 is divided into three vertically divided images B0, B1, and B3.

そして、それぞれの縦分割画像を符号化(圧縮)するために、それぞれの縦分割画像を更に、複数画素から成る画素ブロック(画像ブロック)毎に分割する。そしてこの縦分割画像毎に画像処理を施すのであるが、1つの縦分割画像に対して画像処理を行う場合、この縦分割画像内の画素をラスタスキャン順で参照しながら画像処理を進める。即ち、図2(c)の場合、最初は縦分割画像B0の1ライン目を処理し、次に縦分割画像B0の2ライン目を処理する。このようにして縦分割画像B0の全てのラインを処理すると、次に、縦分割画像B1の1ライン目を処理する。ただし、着目縦分割画像の左右端に位置する画素に対する画像処理では、着目縦分割画像の左右に隣接する縦分割画像内の画素を参照する必要がある。そのため、この左右に隣接する縦分割画像において着目縦分割画像との境界付近は、着目縦分割画像との共有領域となる。即ち、図2(b)に示す如く、縦分割画像B0中の画素群のうち縦分割画像B1との境界付近221に位置する画素に対して画像処理を行う場合、縦分割画像B1中の画素群のうち縦分割画像B0との境界付近229に位置する画素を参照する必要がある。同様に、縦分割画像B1中の画素群のうち縦分割画像B0との境界付近229に位置する画素に対して画像処理を行う場合、縦分割画像B0中の画素群のうち縦分割画像B1との境界付近221に位置する画素を参照する必要がある。そこで、境界付近221及び境界付近229は、縦分割画像B0と縦分割画像B1との共有領域となる。また、縦分割画像B3中の画素群のうち縦分割画像B1との境界付近222に位置する画素に対して画像処理を行う場合、縦分割画像B1中の画素群のうち縦分割画像B3との境界付近228に位置する画素を参照する必要がある。同様に、縦分割画像B1中の画素群のうち縦分割画像B3との境界付近228に位置する画素に対して画像処理を行う場合、縦分割画像B3中の画素群のうち縦分割画像B1との境界付近222に位置する画素を参照する必要がある。そこで、境界付近222及び境界付近228は、縦分割画像B0と縦分割画像B3との共有領域となる。   Then, in order to encode (compress) each vertically divided image, each vertically divided image is further divided into pixel blocks (image blocks) including a plurality of pixels. Then, image processing is performed for each vertically divided image. When image processing is performed on one vertically divided image, the image processing is performed while referring to pixels in the vertically divided image in the raster scan order. That is, in the case of FIG. 2C, the first line of the vertically divided image B0 is processed first, and then the second line of the vertically divided image B0 is processed. When all the lines of the vertically divided image B0 are processed in this way, the first line of the vertically divided image B1 is then processed. However, in the image processing for the pixels located at the left and right ends of the target vertically divided image, it is necessary to refer to the pixels in the vertically divided images adjacent to the left and right of the target vertically divided image. Therefore, in the vertically divided images adjacent to the left and right, the vicinity of the boundary with the focused vertical divided image is a shared area with the focused vertically divided image. That is, as shown in FIG. 2B, when image processing is performed on a pixel located in the vicinity of the boundary 221 with the vertically divided image B1 in the pixel group in the vertically divided image B0, the pixels in the vertically divided image B1. It is necessary to refer to a pixel located in the vicinity of the boundary 229 with the vertically divided image B0 in the group. Similarly, when image processing is performed on a pixel located in the vicinity of the boundary 229 with the vertical division image B0 in the pixel group in the vertical division image B1, the vertical division image B1 in the pixel group in the vertical division image B0. It is necessary to refer to a pixel located in the vicinity 221 of the boundary. Therefore, the boundary vicinity 221 and the boundary vicinity 229 are shared areas of the vertically divided image B0 and the vertically divided image B1. In addition, when image processing is performed on a pixel located in the vicinity of the boundary 222 with the vertical division image B1 among the pixel group in the vertical division image B3, the pixel group with the vertical division image B3 in the pixel group in the vertical division image B1 It is necessary to refer to a pixel located near the boundary 228. Similarly, when image processing is performed on a pixel located in the vicinity of the boundary 228 with the vertically divided image B3 in the pixel group in the vertically divided image B1, the vertical divided image B1 in the pixel group in the vertically divided image B3 It is necessary to refer to a pixel located in the vicinity of the boundary 222. Therefore, the vicinity of the boundary 222 and the vicinity of the boundary 228 are shared areas of the vertically divided image B0 and the vertically divided image B3.

以上ことから、例えば、縦分割画像B1に対して画像処理を行う場合、縦分割画像B0内の画素だけでなく、共有領域221,222内の画素も必要となる。然るに、縦分割画像B1に対して画像処理を行う場合には、縦分割画像B1内の画素に加え、共有領域221,222内の画素も読み出す。この共有領域は、画像の端部の縦分割画像には右か左に1つ存在し、それ以外の縦分割画像には左右1つずつ存在する。   From the above, for example, when image processing is performed on the vertically divided image B1, not only the pixels in the vertically divided image B0 but also the pixels in the shared areas 221 and 222 are required. However, when image processing is performed on the vertically divided image B1, in addition to the pixels in the vertically divided image B1, the pixels in the shared areas 221 and 222 are also read. One shared area exists on the right or left side of the vertically divided image at the edge of the image, and one shared area exists on the left and right sides of the other vertically divided images.

画素ブロック毎の詳細な構成を図2(a)に示す。画素ブロック202は、縦分割画像200を画素ブロック毎に分割した場合の1つの画素ブロックである。画素ブロック202は、画素ブロック201との共有領域LB10(左共有領域)、画素ブロック203との共有領域RB10(右共有領域)、どの画素ブロックからも参照されない画素群の領域B10(非共有領域)から成る。画素ブロック201は、縦分割画像を画素ブロック毎に分割した場合の1つの画素ブロックであり、画素ブロック202との共有領域RB00、左端領域LB00、どの画素ブロックからも参照されない画素群の領域B00から成る。画素ブロック203は、縦分割画像を画素ブロック毎に分割した場合の1つの画素ブロックであり、画素ブロック202との共有領域LB20、右隣の画素ブロックとの共有領域RB20、どの画素ブロックからも参照されない画素群の領域B20から成る。   A detailed configuration for each pixel block is shown in FIG. The pixel block 202 is one pixel block when the vertically divided image 200 is divided for each pixel block. The pixel block 202 includes a shared area LB10 (left shared area) with the pixel block 201, a shared area RB10 (right shared area) with the pixel block 203, and a pixel group area B10 (non-shared area) that is not referred to by any pixel block. Consists of. The pixel block 201 is one pixel block when the vertically divided image is divided for each pixel block. The pixel block 201 includes a shared area RB00 with the pixel block 202, a left end area LB00, and a pixel group area B00 that is not referred to by any pixel block. Become. The pixel block 203 is one pixel block when the vertically divided image is divided for each pixel block. The pixel block 203 is referred to from any pixel block, the shared area LB20 with the pixel block 202, the shared area RB20 with the adjacent pixel block. It consists of a region B20 of the pixel group that is not to be processed.

共有領域RB00は、領域LB10内の画素に対する画像処理を行う際に参照される画素が属する領域であり、共有領域LB10は、領域RB00内の画素に対する画像処理を行う際に参照される画素が属する領域である。また、共有領域RB10は、領域LB20内の画素に対する画像処理を行う際に参照される画素が属する領域であり、共有領域LB20は、領域RB10内の画素に対する画像処理を行う際に参照される画素が属する領域である。このように、それぞれの画素ブロックは、画像上で隣接する画素ブロックとの間で共有領域を有している。画素ブロックのX方向(同図横方向)の幅は、画像処理を行う対象の画素数とする。例えば、画素ブロック202のX方向の幅は、共有領域LB10の幅204と非共有領域B10の幅205と共有領域RB10の幅206の和である。Y方向の幅は、符号化単位に従ったもので、例えば、JPEG符号化を行う場合、符号化単位は8画素×8ラインであるので、8ラインとしても良いし、図2(b)に示す如く、符号化単位210のライン数のN倍でもよい。   The shared region RB00 is a region to which pixels referred to when image processing is performed on the pixels in the region LB10, and the shared region LB10 belongs to pixels referred to when image processing is performed on the pixels in the region RB00. It is an area. The shared region RB10 is a region to which a pixel referred to when image processing is performed on the pixels in the region LB20, and the shared region LB20 is a pixel referred to when image processing is performed on the pixels in the region RB10. Is the area to which In this way, each pixel block has a shared area between adjacent pixel blocks on the image. The width of the pixel block in the X direction (the horizontal direction in the figure) is the number of pixels to be subjected to image processing. For example, the width of the pixel block 202 in the X direction is the sum of the width 204 of the shared region LB10, the width 205 of the non-shared region B10, and the width 206 of the shared region RB10. The width in the Y direction is in accordance with the encoding unit. For example, when JPEG encoding is performed, the encoding unit is 8 pixels × 8 lines, so it may be 8 lines, as shown in FIG. As shown, it may be N times the number of lines in the encoding unit 210.

本実施形態では1つの画素ブロックを符号化する際に、この画素ブロックにおける左共有領域、右共有領域、非共有領域、のそれぞれを別個に符号化してメモリ上で管理するが、その際、それぞれの符号化データのメモリ上におけるアドレス情報を作成する。それぞれの画素ブロックの符号化データをメモリ上に格納した場合における、このメモリ上のマップを図1(a)に示す。   In this embodiment, when one pixel block is encoded, each of the left shared area, the right shared area, and the non-shared area in the pixel block is separately encoded and managed on the memory. Address information on the memory of the encoded data is generated. FIG. 1A shows a map on the memory when the encoded data of each pixel block is stored on the memory.

それぞれの画素ブロックの符号化データ(Block00、10、20、01、11、21)は、左共有領域の符号化データLD、非共有領域の符号化データD、右共有領域の符号化データRD、から構成されている。このように、左共有領域の符号化データLD、非共有領域の符号化データD、右共有領域の符号化データRDが、メモリ上の連続したメモリ領域に格納されており、これらの符号化データLD、D、RDが1つの画素ブロックの符号化データを構成している。なお、これらの符号化データLD、D、RD、をまとめて1つの画素ブロックの符号化データとして管理することができるのであれば、それぞれの画素ブロックの符号化データのメモリ上における並び順は特に限定するものではない。なお、本実施形態では、画素ブロックはJPEG符号化方式に従って可変長符号化するため、画素ブロック毎に可変長の符号化データとなる。   The encoded data (Block 00, 10, 20, 01, 11, 21) of each pixel block is encoded data LD in the left shared area, encoded data D in the non-shared area, encoded data RD in the right shared area, It is composed of Thus, the encoded data LD of the left shared area, the encoded data D of the non-shared area, and the encoded data RD of the right shared area are stored in the continuous memory area on the memory, and these encoded data LD, D, and RD constitute encoded data of one pixel block. If these encoded data LD, D, and RD can be managed collectively as encoded data of one pixel block, the arrangement order of the encoded data of each pixel block on the memory is particularly It is not limited. In the present embodiment, since the pixel block is variable-length encoded according to the JPEG encoding method, variable-length encoded data is obtained for each pixel block.

次に、上記メモリ上におけるそれぞれの符号化データを特定する為のアドレステーブルの構成例を図1(b)に示す。Address00は、画素ブロック00の符号化データBlock00に対応するアドレス情報であり、Address10は、画素ブロック10の符号化データBlock10に対応するアドレス情報である。このように、メモリ上には、画素ブロックの符号化データ毎のアドレス情報から成るアドレステーブルが格納されている。1つの画素ブロックの符号化データに対するアドレス情報には、画素ブロックの符号化データ、左共有領域の符号化データ、右共有領域の符号化データ、左共有領域の符号化データ、のそれぞれについてメモリ上の開始アドレスとデータサイズとが記されている。   Next, FIG. 1B shows a configuration example of an address table for specifying each encoded data on the memory. Address 00 is address information corresponding to the encoded data Block 00 of the pixel block 00, and Address 10 is address information corresponding to the encoded data Block 10 of the pixel block 10. As described above, an address table including address information for each encoded data of the pixel block is stored on the memory. The address information for the encoded data of one pixel block includes the encoded data of the pixel block, the encoded data of the left shared area, the encoded data of the right shared area, and the encoded data of the left shared area on the memory. The start address and the data size are described.

例えば、Address00中のBAは、画素ブロック00の符号化データBlock00のメモリ上における先頭アドレス、BSは、画素ブロック00の符号化データBlock00のデータサイズを示す。LAは、画素ブロック00の左共有領域の符号化データLDのメモリ上における先頭アドレスであり、LSは、画素ブロック00の左共有領域の符号化データLDのデータサイズである。RAは、画素ブロック00の右共有領域の符号化データRDのメモリ上における先頭アドレスであり、RSは、画素ブロック00の右共有領域の符号化データRDのデータサイズである。   For example, BA in Address 00 indicates the start address on the memory of the encoded data Block 00 of the pixel block 00, and BS indicates the data size of the encoded data Block 00 of the pixel block 00. LA is the top address on the memory of the encoded data LD in the left shared area of the pixel block 00, and LS is the data size of the encoded data LD in the left shared area of the pixel block 00. RA is the start address on the memory of the encoded data RD in the right shared area of the pixel block 00, and RS is the data size of the encoded data RD in the right shared area of the pixel block 00.

なお、アドレステーブルのデータサイズを削減するために、先頭アドレスBAと先頭アドレスLAとは一致するため、一方は削除しても良い。また、それぞれの先頭アドレスは、先頭アドレスLAや先頭アドレスBAからのオフセットアドレスで表現しても良い。このように、アドレステーブルの構成例については特に限定するものではない。本実施形態では、各アドレス情報は固定長とし、メモリ上の固定領域に順次配置するものとする。各アドレス情報の配置位置が常に固定である場合には、アドレス情報は圧縮されていてもよいし、連続に配置されなくてもよい。   Note that in order to reduce the data size of the address table, the start address BA and the start address LA match, so one of them may be deleted. Each head address may be expressed by an offset address from the head address LA or the head address BA. Thus, the configuration example of the address table is not particularly limited. In this embodiment, each address information has a fixed length and is sequentially arranged in a fixed area on the memory. When the arrangement position of each address information is always fixed, the address information may be compressed or may not be arranged continuously.

本実施形態に係る画像処理装置の機能構成例を示す図3のブロック図、本実施形態に係る画像処理装置が行う処理のフローチャートを示す図4を用いて、本実施形態に係る画像処理装置、及びこの画像処理装置が行う画像処理方法について説明する。   3 is a functional block diagram of the image processing apparatus according to the present embodiment, and FIG. 4 is a flowchart of processing performed by the image processing apparatus according to the present embodiment. An image processing method performed by the image processing apparatus will be described.

入力部300には、静止画像や、動画像を構成する各フレームの画像が入力される。入力部300は入力された画像(静止画像若しくは1フレーム分の画像)を上記のようにいくつかの縦分割画像に分割し、分割した縦分割画像を順次で後段のブロック変換部301に送出する。ステップS400以降の処理は、1つの縦分割画像に対する処理であるため、図4(a)のフローチャートに従った処理は、縦分割画像毎に行うことになる。   The input unit 300 receives a still image or an image of each frame constituting a moving image. The input unit 300 divides the input image (still image or image for one frame) into several vertically divided images as described above, and sequentially sends the divided vertically divided images to the block conversion unit 301 at the subsequent stage. . Since the processing after step S400 is processing for one vertically divided image, the processing according to the flowchart of FIG. 4A is performed for each vertically divided image.

ステップS400においてブロック変換部301は、入力部300からライン毎のラインデータが入力されると、これを自身が管理するラインバッファに格納する。そしてブロック変換部301は、規定ライン数分のラインデータがラインバッファに格納されると、規定ライン数分のラインデータを圧縮器302による符号化単位毎に分割し、分割したそれぞれの符号化単位のデータを順次圧縮器302に送出する。本実施形態では、圧縮器302はJPEGエンコーダであるものとして説明するため、圧縮器302は、8画素×8ライン単位で符号化を行う。然るにブロック変換部301は、8ライン分のラインデータがラインバッファに格納されたことを検知すると、この8ライン分のラインデータを8画素×8ラインの画素ブロック毎に分割し、分割したそれぞれの画素ブロックを順次圧縮器302に送出する。   In step S400, when the line data for each line is input from the input unit 300, the block conversion unit 301 stores it in the line buffer managed by itself. Then, when the line data for the specified number of lines is stored in the line buffer, the block conversion unit 301 divides the line data for the specified number of lines for each encoding unit by the compressor 302, and each of the divided encoding units Are sequentially sent to the compressor 302. In the present embodiment, since the compressor 302 is described as a JPEG encoder, the compressor 302 performs encoding in units of 8 pixels × 8 lines. However, when the block conversion unit 301 detects that the line data for 8 lines has been stored in the line buffer, the block conversion unit 301 divides the line data for 8 lines into pixel blocks of 8 pixels × 8 lines. The pixel blocks are sequentially sent to the compressor 302.

その際、ブロック変換部301は、送出する画素ブロック内のそれぞれの画素に対してフラグ値を設定する。このフラグ値は、「左共有領域に属する画素」、「非共有領域に属する画素」、「右共有領域に属する画素」、の何れかを示す値をとる。ブロック変換部301は、画素ブロック内の画素を送出する毎にカウントすることで、送出した画素の画素ブロック内における位置を特定し、送出した画素が画素ブロック内で非共有領域、左共有領域、右共有領域の何れに属しているのかを判断する。そして、送出した画素が左共有領域に属する画素であれば、この画素に対しては「左共有領域に属する画素」を示すフラグ値「0」を設定する。また、送出した画素が非共有領域に属する画素であれば、この画素に対しては「非共有領域に属する画素」を示すフラグ値「1」を設定する。また、送出した画素が右共有領域に属する画素であれば、この画素に対しては「右共有領域に属する画素」を示すフラグ値「2」を設定する。そしてブロック変換部301は、送出した画素と関連付けて、この画素に対するフラグ値を圧縮器302に送出する。   At that time, the block conversion unit 301 sets a flag value for each pixel in the pixel block to be transmitted. This flag value takes a value indicating any one of “pixels belonging to the left shared area”, “pixels belonging to the non-shared area”, and “pixels belonging to the right shared area”. The block conversion unit 301 identifies the position of the transmitted pixel in the pixel block by counting each time the pixel in the pixel block is transmitted, and the transmitted pixel is a non-shared area, a left shared area, It is determined to which of the right shared area it belongs. If the transmitted pixel is a pixel belonging to the left shared area, a flag value “0” indicating “a pixel belonging to the left shared area” is set for this pixel. If the transmitted pixel is a pixel belonging to the non-shared area, a flag value “1” indicating “a pixel belonging to the non-shared area” is set for this pixel. If the transmitted pixel is a pixel belonging to the right shared area, a flag value “2” indicating “a pixel belonging to the right shared area” is set for this pixel. Then, the block conversion unit 301 sends the flag value for this pixel to the compressor 302 in association with the sent pixel.

これにより圧縮器302は、画素ブロック内のそれぞれの画素のフラグ値を参照すれば、画素ブロック内の各画素が左共有領域に属しているのか、非共有領域に属しているのか、右共有領域に属しているのかを判別することができる。即ち、このフラグ値は画素ブロックを、画素ブロックの左端の縦ラインを含む第1の矩形画素ブロック、右端の縦ラインを含む第2の矩形画素ブロック、第1及び第2の矩形画素ブロックを省いた残りの第3の矩形画素ブロック、の3つに分割することになる。   Thereby, the compressor 302 refers to the flag value of each pixel in the pixel block, whether each pixel in the pixel block belongs to the left shared area, the non-shared area, or the right shared area. Can be determined. That is, this flag value excludes the pixel block from the first rectangular pixel block including the leftmost vertical line, the second rectangular pixel block including the rightmost vertical line, and the first and second rectangular pixel blocks. The remaining third rectangular pixel block is divided into three.

圧縮器302に対する入力はライン方向であるので、通常、画素ブロックは、左共有領域、非共有領域、右共有領域、の順に必要な画素がそろう。然るにステップS401で圧縮器302は、画素毎のフラグ値を参照し、左共有領域に属する画素から成る第1の矩形画素ブロックを構成し、この第1の矩形画素ブロックを1MCUとしてJPEG符号化を行うことで第1の符号化矩形画素ブロックを生成する。そして圧縮器302は、この生成した第1の符号化矩形画素ブロックを後段のWDMAC303に対して送出する。   Since the input to the compressor 302 is in the line direction, the pixel block usually has necessary pixels in the order of the left shared area, the non-shared area, and the right shared area. However, in step S401, the compressor 302 refers to the flag value for each pixel, forms a first rectangular pixel block composed of pixels belonging to the left shared area, and performs JPEG encoding with this first rectangular pixel block as one MCU. By doing so, a first encoded rectangular pixel block is generated. Then, the compressor 302 sends the generated first encoded rectangular pixel block to the subsequent WDMAC 303.

次にステップS402で圧縮器302は、画素毎のフラグ値を参照して、非共有領域に属する画素から成る第3の矩形画素ブロックを構成し、この第3の矩形画素ブロックを1MCUとしてJPEG符号化を行うことで第3の符号化矩形画素ブロックを生成する。そして圧縮器302は、この生成した第3の符号化矩形画素ブロックを後段のWDMAC303に対して送出する。   Next, in step S402, the compressor 302 refers to the flag value for each pixel, configures a third rectangular pixel block including pixels belonging to the non-shared area, and uses the third rectangular pixel block as one MCU to perform JPEG encoding. To generate a third encoded rectangular pixel block. Then, the compressor 302 sends the generated third encoded rectangular pixel block to the subsequent WDMAC 303.

次にステップS403で圧縮器302は、画素毎のフラグ値を参照して、右共有領域に属する画素から成る第2の矩形画素ブロックを構成し、この第2の矩形画素ブロックを1MCUとしてJPEG符号化を行うことで第2の符号化矩形画素ブロックを生成する。そして圧縮器302は、この生成した第2の符号化矩形画素ブロックを後段のWDMAC303に対して送出する。   Next, in step S403, the compressor 302 refers to the flag value for each pixel, configures a second rectangular pixel block composed of pixels belonging to the right shared area, and uses the second rectangular pixel block as 1 MCU to perform JPEG encoding. To generate a second encoded rectangular pixel block. Then, the compressor 302 sends the generated second encoded rectangular pixel block to the subsequent WDMAC 303.

ステップS404でWDMAC303は、1画素ブロック分の符号化データ、即ち、ステップS401〜S403の各ステップで送出された第1〜3の符号化矩形画素ブロック、を受けると、それぞれの符号化矩形画素ブロックをメモリ304に格納する。メモリ304上における1画素ブロック分の符号化データの配置例については図1(a)を用いて上述したとおりである。また、画素ブロック201、202、203のそれぞれを符号化して符号化データBlock00、10、20、を生成した場合、図1(a)に示す如く、それぞれの符号化データをメモリ304上に並べて格納する。このように、書き込まれる画素ブロックは、ライン走査方向順に連続して格納する。   In step S404, the WDMAC 303 receives the encoded data for one pixel block, that is, the first to third encoded rectangular pixel blocks transmitted in steps S401 to S403. Is stored in the memory 304. The arrangement example of the encoded data for one pixel block on the memory 304 is as described above with reference to FIG. In addition, when each of the pixel blocks 201, 202, and 203 is encoded to generate encoded data Blocks 00, 10, and 20, the respective encoded data are stored side by side on the memory 304 as shown in FIG. To do. Thus, the pixel blocks to be written are stored successively in the line scanning direction.

ステップS404では更にWDMAC303は、各符号化矩形画素ブロックのデータサイズ(バイト数)、及び各符号化矩形画素ブロックのメモリ304上における先頭アドレスを求め、アドレス情報を生成する。これにより、1つの画素ブロック分の符号化データに対するアドレス情報を生成することができる。   In step S404, the WDMAC 303 further obtains the data size (number of bytes) of each encoded rectangular pixel block and the head address of each encoded rectangular pixel block on the memory 304, and generates address information. Thereby, address information for encoded data for one pixel block can be generated.

ステップS405ではWDMAC303は、ステップS404で生成したアドレス情報をメモリ304に格納する。1画素ブロック分の符号化データに対するアドレス情報のメモリ304上における配置例については図1(b)を用いて上述したとおりである。また、画素ブロック201、202、203のそれぞれに対応するアドレス情報がAddress00、10、20である場合、図1(b)に示す如く、それぞれのアドレス情報をそれぞれの符号化データをメモリ304上に並べて格納する。このように、書き込まれるアドレス情報はライン走査方向順に連続で格納する。   In step S405, the WDMAC 303 stores the address information generated in step S404 in the memory 304. An arrangement example of the address information for the encoded data for one pixel block on the memory 304 is as described above with reference to FIG. When the address information corresponding to each of the pixel blocks 201, 202, and 203 is Address 00, 10, and 20, as shown in FIG. 1 (b), the respective address information is stored in the memory 304 with the respective encoded data. Store side by side. As described above, the address information to be written is continuously stored in the order of the line scanning direction.

そして、縦分割画像を構成する全ての画素ブロックについてステップS400〜S405の処理が行われたのであれば、図4(a)のフローチャートに従った処理は終了する。一方、まだステップS400〜S405の処理を行っていない画素ブロックが残っていれば、この画素ブロックについてステップS400以降の処理を行う。   Then, if the processes in steps S400 to S405 have been performed for all the pixel blocks constituting the vertically divided image, the process according to the flowchart of FIG. On the other hand, if there remains a pixel block that has not been subjected to the processes in steps S400 to S405, the processes in and after step S400 are performed on this pixel block.

RDMAC305は、メモリ304に2以上の画素ブロックの符号化データが格納されると動作する。ステップS410でRDMAC305は、メモリ304中のアドレステーブルから、着目画素ブロックのアドレス情報、着目画素ブロックの左に隣接する画素ブロックのアドレス情報、着目画素ブロックの右に隣接する画素ブロックのアドレス情報、を読み出す。例えば、アドレステーブルが図1(b)に示すものであり、着目画素ブロックが画素ブロック00であるとする。この場合、Address00、Address10、Address20、をこのメモリ304から読み出す。   The RDMAC 305 operates when encoded data of two or more pixel blocks is stored in the memory 304. In step S410, the RDMAC 305 obtains address information of the target pixel block, address information of the pixel block adjacent to the left of the target pixel block, and address information of the pixel block adjacent to the right of the target pixel block from the address table in the memory 304. read out. For example, the address table is as shown in FIG. 1B, and the pixel block of interest is the pixel block 00. In this case, Address 00, Address 10, Address 20 are read from the memory 304.

ステップS411でRDMAC305は、着目画素ブロックの左に隣接する画素ブロックのアドレス情報から、先頭アドレスRA及びデータサイズRSを読み出す。そしてRDMAC305は、メモリ304においてこの先頭アドレスRAからデータサイズRS分の領域内のデータを、着目画素ブロックの左に隣接する画素ブロックの右共有領域の符号化データRDとして読み出す。図2(a)の例では、着目画素ブロックが画素ブロック202の場合、画素ブロック201のアドレス情報Address00中の先頭アドレスRA及びデータサイズRSを読み出す。そして、メモリ304においてこの先頭アドレスRAからデータサイズRS分の領域内のデータを、着目画素ブロックの左に隣接する画素ブロックの右共有領域の符号化データRDとして読み出す。そしてRDMAC305は、この読み出した符号化データRDを伸張器306に対して送出する。   In step S411, the RDMAC 305 reads the head address RA and the data size RS from the address information of the pixel block adjacent to the left of the pixel block of interest. Then, the RDMAC 305 reads data in the area corresponding to the data size RS from the head address RA in the memory 304 as encoded data RD in the right shared area of the pixel block adjacent to the left of the pixel block of interest. In the example of FIG. 2A, when the pixel block of interest is the pixel block 202, the head address RA and the data size RS in the address information Address00 of the pixel block 201 are read. Then, in the memory 304, the data in the area corresponding to the data size RS from the head address RA is read as the encoded data RD of the right shared area of the pixel block adjacent to the left of the pixel block of interest. Then, the RDMAC 305 transmits the read encoded data RD to the decompressor 306.

ステップS412でRDMAC305は、着目画素ブロックのアドレス情報から、先頭アドレスBA及びデータサイズBSを読み出す。そしてRDMAC305は、メモリ304においてこの先頭アドレスBAからデータサイズBS分の領域内のデータを、着目画素ブロックの符号化データとして読み出す。図2(a)の例では、着目画素ブロックが画素ブロック202の場合、画素ブロック202のアドレス情報Address10中の先頭アドレスBA及びデータサイズBSを読み出す。そして、メモリ304においてこの先頭アドレスBAからデータサイズBS分の領域内のデータを、画素ブロック202の符号化データBlock10として読み出す。そしてRDMAC305は、この読み出した符号化データを伸張器306に対して送出する。   In step S412, the RDMAC 305 reads the head address BA and the data size BS from the address information of the pixel block of interest. Then, the RDMAC 305 reads data in the area corresponding to the data size BS from the head address BA in the memory 304 as encoded data of the pixel block of interest. In the example of FIG. 2A, when the pixel block of interest is the pixel block 202, the head address BA and the data size BS in the address information Address10 of the pixel block 202 are read. Then, in the memory 304, the data in the area corresponding to the data size BS from the head address BA is read as the encoded data Block10 of the pixel block 202. Then, the RDMAC 305 sends the read encoded data to the decompressor 306.

ステップS413でRDMAC305は、着目画素ブロックの右に隣接する画素ブロックのアドレス情報から、先頭アドレスLA及びデータサイズLSを読み出す。そしてRDMAC305は、メモリ304においてこの先頭アドレスLAからデータサイズLS分の領域内のデータを、着目画素ブロックの右に隣接する画素ブロックの左共有領域の符号化データLDとして読み出す。図2(a)の例では、着目画素ブロックが画素ブロック202の場合、画素ブロック203のアドレス情報Address20中の先頭アドレスLA及びデータサイズLSを読み出す。そして、メモリ304においてこの先頭アドレスLAからデータサイズLS分の領域内のデータを、着目画素ブロックの右に隣接する画素ブロックの左共有領域の符号化データLDとして読み出す。そしてRDMAC305は、この読み出した符号化データRDを伸張器306に対して送出する。   In step S413, the RDMAC 305 reads the head address LA and the data size LS from the address information of the pixel block adjacent to the right of the pixel block of interest. Then, the RDMAC 305 reads data in the area corresponding to the data size LS from the head address LA in the memory 304 as encoded data LD in the left shared area of the pixel block adjacent to the right of the pixel block of interest. In the example of FIG. 2A, when the pixel block of interest is the pixel block 202, the head address LA and the data size LS in the address information Address20 of the pixel block 203 are read. Then, in the memory 304, data in the area corresponding to the data size LS from the head address LA is read as encoded data LD in the left shared area of the pixel block adjacent to the right of the pixel block of interest. Then, the RDMAC 305 transmits the read encoded data RD to the decompressor 306.

ステップS414で伸張器306は、ステップS411〜S413でRDMAC305から送出されたそれぞれの符号化データを伸張してラインデータを生成する。即ち、着目画素ブロックの左に隣接する画素ブロックの右共有領域の符号化データを伸張(第2の伸張)して、着目画素ブロックの左に隣接する画素ブロックの右共有領域のラインデータを生成する。また、着目画素ブロックの符号化データを伸張(第1の伸張)して、着目画素ブロックのラインデータを生成する。また、着目画素ブロックの右に隣接する画素ブロックの左共有領域の符号化データを伸張(第3の伸張)して、着目画素ブロックの右に隣接する画素ブロックの左共有領域のラインデータを生成する。そしてこのようにして生成したそれぞれのラインデータを、ライン変換部307内のラインバッファに格納する。図2(a)の例では、着目画素ブロックが画素ブロック202の場合、右共有領域RB00、左共有領域LB10、非共有領域B10、右共有領域RB10、左共有領域LB20のそれぞれのラインデータが生成され、ラインバッファに格納される。   In step S414, the decompressor 306 decompresses each encoded data transmitted from the RDMAC 305 in steps S411 to S413, and generates line data. That is, the encoded data in the right shared area of the pixel block adjacent to the left of the pixel block of interest is expanded (second expansion) to generate line data of the right shared area of the pixel block adjacent to the left of the pixel block of interest. To do. Also, the encoded data of the pixel block of interest is expanded (first expansion) to generate line data of the pixel block of interest. Also, the encoded data of the left shared region of the pixel block adjacent to the right of the pixel block of interest is expanded (third expansion) to generate line data of the left shared region of the pixel block adjacent to the right of the pixel block of interest. To do. Each line data generated in this way is stored in a line buffer in the line conversion unit 307. In the example of FIG. 2A, when the target pixel block is the pixel block 202, line data of the right shared region RB00, the left shared region LB10, the non-shared region B10, the right shared region RB10, and the left shared region LB20 is generated. And stored in the line buffer.

ステップS415でライン変換部307は、伸張器306がステップS411〜S413で受け取ったそれぞれの符号化データを伸張したラインデータをラインバッファに格納すると、この格納されたラインデータを画像処理部308に転送する。図2(a)の例では、着目画素ブロックが画素ブロック202の場合、右共有領域RB00、左共有領域LB10、非共有領域B10、右共有領域RB10、左共有領域LB20のそれぞれのラインデータが画像処理部308に転送される。   In step S415, the line conversion unit 307 stores the line data obtained by decompressing the respective encoded data received by the decompressor 306 in steps S411 to S413 in the line buffer, and transfers the stored line data to the image processing unit 308. To do. In the example of FIG. 2A, when the pixel block of interest is the pixel block 202, each line data of the right shared region RB00, the left shared region LB10, the non-shared region B10, the right shared region RB10, and the left shared region LB20 is an image. Transferred to the processing unit 308.

そして、縦分割画像を構成する全ての画素ブロックについてステップS410〜S415の処理が行われたのであれば、図4(b)のフローチャートに従った処理は終了する。一方、まだステップS410〜S415の処理を行っていない画素ブロックが残っていれば、この画素ブロックについてステップS410以降の処理を行う。   Then, if the processing of steps S410 to S415 has been performed for all the pixel blocks constituting the vertically divided image, the processing according to the flowchart of FIG. On the other hand, if there remains a pixel block that has not yet been subjected to the processing of steps S410 to S415, the processing after step S410 is performed on this pixel block.

これにより画像処理部308は、例えば画素ブロック202内のあるラインについて画像処理を行う場合、このライン内で、右共有領域RB00内の画素を参照する必要がある画素については、右共有領域RB00のラインデータを参照すればよい。また、画素ブロック202内のあるラインについて画像処理を行う場合、このライン内で、左共有領域LB20内の画素を参照する必要がある画素については、左共有領域LB20のラインデータを参照すればよい。   Thus, for example, when performing image processing on a certain line in the pixel block 202, the image processing unit 308 requires a pixel in the right shared area RB00 to refer to a pixel in the right shared area RB00. The line data may be referred to. Further, when image processing is performed for a certain line in the pixel block 202, the line data in the left shared area LB20 may be referred to for a pixel that needs to refer to a pixel in the left shared area LB20 in this line. .

そして画像処理部308は、1ライン分の画像処理が完了すると、画像処理済みのラインデータを、ブロック変換部301’が有するラインバッファに格納する。なお、ブロック変換部301’はブロック変換部301と同様の動作を行い、圧縮器302’は圧縮器302と同様の動作を行い、WDMAC303’はWDMAC303と同様の動作を行う。これにより、画像処理済みの画素ブロック毎の符号化データがメモリ304に格納されることになる。なお、ブロック変換部301’は、以降で周辺画素を用いた画像処理が行われないような場合には、上記のようなフラグ値の設定は再度、行わなくても良い。   When the image processing for one line is completed, the image processing unit 308 stores the image-processed line data in a line buffer included in the block conversion unit 301 '. The block converter 301 ′ performs the same operation as the block converter 301, the compressor 302 ′ performs the same operation as the compressor 302, and the WDMAC 303 ′ performs the same operation as the WDMAC 303. As a result, the encoded data for each pixel block that has undergone image processing is stored in the memory 304. Note that the block conversion unit 301 ′ does not need to set the flag value as described above again when image processing using peripheral pixels is not performed thereafter.

ステップS420においてRDMAC310は、読み出し対象となる画素ブロック(対象画素ブロック)に対するアドレス情報をメモリ304から読み出す。ステップS421ではRDMAC310は、この読み出したアドレス情報中の先頭アドレスBAとデータサイズBSとを参照し、メモリ304において先頭アドレスBAからデータサイズBS分のデータを、対象画素ブロックの符号化データとして読み出す。そしてRDMAC310は、この読み出した対象画素ブロックの符号化データを伸張器306’に対して送出する。   In step S420, the RDMAC 310 reads address information for the pixel block (target pixel block) to be read from the memory 304. In step S421, the RDMAC 310 refers to the head address BA and the data size BS in the read address information, and reads data for the data size BS from the head address BA in the memory 304 as encoded data of the target pixel block. Then, the RDMAC 310 sends the encoded data of the read target pixel block to the decompressor 306 '.

ステップS422では伸張器306’は、RDMAC310から送出された対象画素ブロックの符号化データを伸張して対象画素ブロックを生成し、生成した対象画素ブロックをライン変換部307’に対して送出する。ライン変換部307’は自身が管理するメモリ内で、今回伸張器306’から受け取った画素ブロックを、既に伸張済みの画素ブロックに隣接させて配置させることで、画素ブロック単位で画像全体を形成する。然るに、RDMAC310が全ての画素ブロックの符号化データを読み出した場合、即ち、全ての画素ブロックが伸張されてライン変換部307’内に配置された場合には、処理はステップS424に進む。一方、RDMAC310が未だ読み出していない画素ブロックの符号化データがメモリ304内に残っている場合、処理はステップS420に戻る。そして、未だメモリ304から読み出されていない画素ブロックの符号化データについてステップS420以降の処理を行う。   In step S422, the decompressor 306 'decompresses the encoded data of the target pixel block sent from the RDMAC 310 to generate the target pixel block, and sends the generated target pixel block to the line conversion unit 307'. The line conversion unit 307 ′ forms the entire image in units of pixel blocks by arranging the pixel block received from the decompressor 306 ′ this time adjacent to the already decompressed pixel block in the memory managed by the line converter 307 ′. . However, if the RDMAC 310 has read the encoded data of all the pixel blocks, that is, if all the pixel blocks have been expanded and placed in the line conversion unit 307 ', the process proceeds to step S424. On the other hand, when the encoded data of the pixel block that RDMAC 310 has not yet read out remains in memory 304, the process returns to step S420. And the process after step S420 is performed about the coding data of the pixel block which has not been read from the memory 304 yet.

ステップS424ではライン変換部307’は、完成した画像を出力部309に対して送出する。送出単位については特に限定するものではなく、ラインデータ毎に送出しても良いし、画像全体を一度に送出しても良い。出力部309は、この画像を表示装置や記憶装置、印刷装置などに対して出力する。もちろん、出力先については特に限定するものではない。   In step S424, the line conversion unit 307 'sends the completed image to the output unit 309. The sending unit is not particularly limited, and may be sent for each line data, or the entire image may be sent at once. The output unit 309 outputs this image to a display device, a storage device, a printing device, or the like. Of course, the output destination is not particularly limited.

そして、以上の処理を繰り返す必要がある場合、例えば、次のフレームの画像について以上の処理を繰り返す必要がある場合には、処理はステップS420に戻り、次の画像についてステップS420以降の処理を行う。   If it is necessary to repeat the above processing, for example, if it is necessary to repeat the above processing for the image of the next frame, the processing returns to step S420, and the processing after step S420 is performed for the next image. .

なお、図3に示した構成を有する画像処理装置は1台の装置で構成しても良いし、複数台の装置で構成しても良い。例えば、入力部300、ブロック変換部301、圧縮器302、WDMAC303、メモリ304、を1台の符号化装置で構成しても良い。また、メモリ304、RDMAC305、伸張器306、ライン変換部307、画像処理部308、ブロック変換部301’、圧縮器302’、WDMAC303’を1台の画像処理装置で構成しても良い。また、メモリ304、RDMAC310、伸張器306’、ライン変換部307’、出力部309を1台の復号装置で構成しても良い。同様のことは、以降の実施形態についても適用可能である。   Note that the image processing apparatus having the configuration shown in FIG. 3 may be configured by one apparatus or a plurality of apparatuses. For example, the input unit 300, the block conversion unit 301, the compressor 302, the WDMAC 303, and the memory 304 may be configured by a single encoding device. In addition, the memory 304, the RDMAC 305, the decompressor 306, the line converter 307, the image processor 308, the block converter 301 ', the compressor 302', and the WDMAC 303 'may be configured by one image processing apparatus. Further, the memory 304, the RDMAC 310, the decompressor 306 ', the line conversion unit 307', and the output unit 309 may be configured by one decoding device. The same applies to the following embodiments.

以上の説明により、本実施形態によれば、画素ブロックを処理する際に、隣接ブロックから共有画素の圧縮データのみにアクセス可能になるため、不要な画素の読み出しが無くなり、メモリ帯域を削減することができる。   As described above, according to the present embodiment, when processing a pixel block, only the compressed data of the shared pixel can be accessed from the adjacent block, so that unnecessary pixel reading is eliminated and the memory bandwidth is reduced. Can do.

[第2の実施形態]
本実施形態に係る画像処理装置の構成例について、図5のブロック図を用いて説明する。なお、図5において図3に示した構成用件と同じものについては同じ参照番号を付けており、その説明は省略する。
[Second Embodiment]
A configuration example of the image processing apparatus according to the present embodiment will be described with reference to the block diagram of FIG. In FIG. 5, the same components as those shown in FIG. 3 are denoted by the same reference numerals, and the description thereof is omitted.

画像処理部A510は、画像処理部308と同様の処理を行い、1ライン分の画像処理が完了すると、画像処理済みのラインデータを、ブロック変換部512が有するラインバッファに格納する。   The image processing unit A 510 performs the same processing as the image processing unit 308, and when the image processing for one line is completed, the image processed line data is stored in a line buffer included in the block conversion unit 512.

ブロック変換部512は、ブロック変換部301と同様に、画素ブロックの出力、画素ブロック内の各画素に対するフラグ値の設定及び出力、を行うのであるが、これに加えて、画素ブロック内の共有領域のサイズを画像処理部B511用のサイズに変更する。例えば、共有領域のX方向のサイズ(画素数)を16画素から32画素に変更する。   Similarly to the block conversion unit 301, the block conversion unit 512 outputs a pixel block and sets and outputs a flag value for each pixel in the pixel block. Is changed to the size for the image processing unit B511. For example, the size (number of pixels) in the X direction of the shared area is changed from 16 pixels to 32 pixels.

ブロック変換部512、圧縮器302”、WDMAC303’、は、図6のフローチャートに従った処理を行う。なお、図6のフローチャートにおいて、図4(a)に示したステップと同じステップには同じ参照番号を付けており、その説明は省略する。   The block conversion unit 512, the compressor 302 ″, and the WDMAC 303 ′ perform processing in accordance with the flowchart of FIG. 6. In the flowchart of FIG. 6, the same steps as those shown in FIG. They are numbered and will not be described.

ステップS600ではブロック変換部512は、共有領域のサイズを変更(更新)する。即ち、画像処理部A510から送出されたラインデータ群を画素ブロック毎に分割した後、それぞれの画素ブロックが、この更新したサイズの共有領域を有するように、それぞれの画素ブロック内のそれぞれの画素に対するフラグ値を再設定する。   In step S600, the block conversion unit 512 changes (updates) the size of the shared area. That is, after the line data group sent from the image processing unit A 510 is divided for each pixel block, each pixel block has a shared area of this updated size. Reset the flag value.

なお、図5において、画像処理部B511は、ライン変換部307’から受けた画素ブロックを用いて、着目画素に対する処理をその周辺画素を用いて行うような画像処理を行う。そして画像処理部B511は、1ライン分の画像処理が完了すると、画像処理済みのラインデータを、ブロック変換部301”が有するラインバッファに格納する。   In FIG. 5, the image processing unit B <b> 511 performs image processing using the pixel block received from the line conversion unit 307 ′ to perform processing on the pixel of interest using its surrounding pixels. Then, when the image processing for one line is completed, the image processing unit B511 stores the image-processed line data in the line buffer included in the block conversion unit 301 ″.

ブロック変換部301”はブロック変換部301と同様の動作を行い、圧縮器302”は圧縮器302と同様の動作を行い、WDMAC303”はWDMAC303と同様の動作を行う。また、RDMAC310”はRDMAC310と同様の動作を行い、伸張器306”は伸張器306と同様の動作を行い、ライン変換部307”はライン変換部307と同様の動作を行う。   The block conversion unit 301 ″ performs the same operation as the block conversion unit 301, the compressor 302 ″ performs the same operation as the compressor 302, the WDMAC 303 ″ performs the same operation as the WDMAC 303, and the RDMAC 310 ″ and the RDMAC 310. The expansion unit 306 ″ performs the same operation as the expansion unit 306, and the line conversion unit 307 ″ performs the same operation as the line conversion unit 307.

以上の説明により、本実施形態によれば、画像処理の途中で、参照画素数を削減する場合であっても、アドレス情報中の共有領域の符号化データの先頭アドレス及びデータサイズの変更で対処できるため、アドレス情報の読み出し制御を変更する必要がない。   As described above, according to the present embodiment, even when the number of reference pixels is reduced in the middle of image processing, a change is made by changing the start address and data size of the encoded data in the shared area in the address information. Therefore, there is no need to change the address information read control.

[第3の実施形態]
図3や図5に示した各部はハードウェアで構成しても良いし、一部をソフトウェアで構成しても良い。例えば、入力部300及び出力部309をI/F(入出力インターフェース)で構成し、メモリ304をRAMで構成し、その他の各部をコンピュータプログラムで実装しても良い。この場合、このI/FとRAMとを有するコンピュータに、このコンピュータプログラムをインストールさせてから、このコンピュータプログラムをこのコンピュータが有するCPUに実行させる。これにより、このコンピュータは、上記の画像処理装置が行うものとして説明した各処理を実行することになる。
[Third Embodiment]
Each unit shown in FIGS. 3 and 5 may be configured by hardware, or a part may be configured by software. For example, the input unit 300 and the output unit 309 may be configured by an I / F (input / output interface), the memory 304 may be configured by a RAM, and the other units may be implemented by a computer program. In this case, the computer program is installed in a computer having the I / F and RAM, and then the computer program is executed by the CPU of the computer. As a result, the computer executes the processes described as being performed by the image processing apparatus.

(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(または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, or the like) of the system or apparatus reads the program. It is a process to be executed.

Claims (7)

複数画素から成る画素ブロックを、該画素ブロックの左側に隣接する左画素ブロックに対する画像処理において参照される該画素ブロック内の画素を含む第1の部分画素ブロック、前記画素ブロックの右側に隣接する右画素ブロックに対する画像処理において参照される該画素ブロック内の画素を含む第2の部分画素ブロック、前記画素ブロックから前記第1の部分画素ブロック及び第2の部分画素ブロックを省いた残りの部分画素ブロックである第3の部分画素ブロック、の3つの部分画素ブロックに分割する手段と、
前記第1の部分画素ブロック、前記第2の部分画素ブロック、前記第3の部分画素ブロック、のそれぞれを個別に符号化して第1の符号化部分画素ブロック、第2の符号化部分画素ブロック、第3の符号化部分画素ブロックを生成しメモリに格納する符号化手段と
を備えることを特徴とする画像処理装置。
A first partial pixel block including a pixel in the pixel block referred to in image processing for a left pixel block adjacent to the left side of the pixel block; a right adjacent to the right side of the pixel block; second fractional pixel block, the remainder of the pixel block from the pixel block omitting the first portion pixel block and a second portion pixel block including the pixel in the pixel block to be referenced by the image processing for the pixel block Means for dividing the third partial pixel block of the third partial pixel block,
The first partial pixel block, the second partial pixel block, and the third partial pixel block are individually encoded to obtain a first encoded partial pixel block, a second encoded partial pixel block, An image processing apparatus comprising: encoding means for generating a third encoded partial pixel block and storing it in a memory.
前記符号化手段は、前記第1の部分画素ブロック、前記第2の部分画素ブロック、前記第3の部分画素ブロック、のそれぞれに対して個別に可変長符号化を行うことで前記第1の符号化部分画素ブロック、前記第2の符号化部分画素ブロック、前記第3の符号化部分画素ブロックを生成することを特徴とする請求項1に記載の画像処理装置。 The encoding means individually performs variable-length encoding on each of the first partial pixel block, the second partial pixel block, and the third partial pixel block, whereby the first code The image processing apparatus according to claim 1, wherein the encoded partial pixel block, the second encoded partial pixel block, and the third encoded partial pixel block are generated. 更に、
着目画素ブロックの前記第1の符号化部分画素ブロック、前記第2の符号化部分画素ブロック、前記第3の符号化部分画素ブロック、を伸張する第1の伸張手段と、
前記着目画素ブロックの左に隣接する画素ブロックの前記第2の符号化部分画素ブロックを前記メモリから読み出して伸張する第2の伸張手段と、
前記着目画素ブロックの右に隣接する画素ブロックの前記第1の符号化部分画素ブロックを前記メモリから読み出して伸張する第3の伸張手段と、
前記第1の伸張手段による伸張で得られる前記着目画素ブロックに対する画像処理を、前記第2の伸張手段により伸張された前記第2の部分画素ブロック、前記第3の伸張手段により伸張された前記第1の部分画素ブロック、を用いて行う画像処理手段と
を備えることを特徴とする請求項1又は2に記載の画像処理装置。
Furthermore,
First expansion means for expanding the first encoded partial pixel block, the second encoded partial pixel block, and the third encoded partial pixel block of the pixel block of interest;
Second decompressing means for decompressing said second coded portion pixel block of the pixel block adjacent to the left side of the target pixel block is read out from said memory,
A third decompression means for decompressing said first coded portion pixel block of the pixel block adjacent to the right side of the target pixel block is read out from said memory,
The image processing for the pixel block of interest obtained by the expansion by the first expansion means is performed on the second partial pixel block expanded by the second expansion means and the first expanded by the third expansion means. The image processing apparatus according to claim 1, further comprising: an image processing unit that uses one partial pixel block.
前記画像処理は、JPEG符号化の処理であることを特徴とする請求項3に記載の画像処理装置。   The image processing apparatus according to claim 3, wherein the image processing is JPEG encoding processing. 更に、Furthermore,
前記メモリにおける前記第1の符号化部分画素ブロックの先頭アドレス及びデータサイズ、前記メモリにおける前記第2の符号化部分画素ブロックの先頭アドレス及びデータサイズ、前記メモリにおける前記第3の符号化部分画素ブロックの先頭アドレス及びデータサイズ、を前記画素ブロックに対するアドレス情報として前記メモリに格納する格納手段を備えることを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。Start address and data size of the first encoded partial pixel block in the memory, start address and data size of the second encoded partial pixel block in the memory, and the third encoded partial pixel block in the memory 5. The image processing apparatus according to claim 1, further comprising a storage unit configured to store the first address and data size of the first address and the data size in the memory as address information for the pixel block.
画像処理装置が行う画像処理方法であって、
前記画像処理装置の分割手段が、複数画素から成る画素ブロックを、該画素ブロックの左側に隣接する左画素ブロックに対する画像処理において参照される該画素ブロック内の画素を含む第1の部分画素ブロック、前記画素ブロックの右側に隣接する右画素ブロックに対する画像処理において参照される該画素ブロック内の画素を含む第2の部分画素ブロック、前記画素ブロックから前記第1及び第2の部分画素ブロックを省いた残りの部分画素ブロックである第3の部分画素ブロック、の3つの部分画素ブロックに分割する工程と、
前記画像処理装置の符号化手段が、前記第1の部分画素ブロック、前記第2の部分画素ブロック、前記第3の部分画素ブロック、のそれぞれを個別に符号化して第1の符号化部分画素ブロック、第2の符号化部分画素ブロック、第3の符号化部分画素ブロックを生成しメモリに格納する符号化工程と
を備えることを特徴とする画像処理方法。
An image processing method performed by an image processing apparatus,
Said dividing means of the image processing apparatus, a pixel block including a plurality of pixels, the first portion pixel block including the pixels in the pixel block to be referenced by the image processing for the left pixel block adjacent to the left side of the pixel block, A second partial pixel block including a pixel in the pixel block referred to in image processing on the right pixel block adjacent to the right side of the pixel block, and the first and second partial pixel blocks are omitted from the pixel block; a step of dividing the remaining third part pixel block is a partial pixel block, of the three portions pixel block,
The encoding means of the image processing device individually encodes each of the first partial pixel block, the second partial pixel block, and the third partial pixel block to generate a first encoded partial pixel block And an encoding step of generating a second encoded partial pixel block and a third encoded partial pixel block and storing them in a memory.
コンピュータを、請求項1乃至の何れか1項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。 A computer program for causing a computer to function as each unit of the image processing apparatus according to any one of claims 1 to 5 .
JP2010283732A 2010-12-20 2010-12-20 Image processing apparatus and image processing method Active JP5731816B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010283732A JP5731816B2 (en) 2010-12-20 2010-12-20 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010283732A JP5731816B2 (en) 2010-12-20 2010-12-20 Image processing apparatus and image processing method

Publications (3)

Publication Number Publication Date
JP2012134669A JP2012134669A (en) 2012-07-12
JP2012134669A5 JP2012134669A5 (en) 2014-02-06
JP5731816B2 true JP5731816B2 (en) 2015-06-10

Family

ID=46649762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010283732A Active JP5731816B2 (en) 2010-12-20 2010-12-20 Image processing apparatus and image processing method

Country Status (1)

Country Link
JP (1) JP5731816B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022000324A1 (en) * 2020-06-30 2022-01-06 深圳市大疆创新科技有限公司 Data encoding method, data decoding method, data processing method, encoder, decoder, system, movable platform and computer-readable medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002354264A (en) * 2001-05-28 2002-12-06 Nec Microsystems Ltd Image processor and its method
JP4363292B2 (en) * 2004-09-28 2009-11-11 セイコーエプソン株式会社 Image processing apparatus, printer including the same, and image processing method
US7742199B2 (en) * 2004-10-06 2010-06-22 Kabushiki Kaisha Toshiba System and method for compressing and rotating image data
JP2010161667A (en) * 2009-01-08 2010-07-22 Canon Inc Image processor, control method and program

Also Published As

Publication number Publication date
JP2012134669A (en) 2012-07-12

Similar Documents

Publication Publication Date Title
KR20110074884A (en) Image processing device and image processing method
JP6679290B2 (en) Semiconductor device
CN113170140A (en) Bit plane encoding of data arrays
US8417042B2 (en) Image processing apparatus, control method and computer-readable medium
JP5706754B2 (en) Data processing apparatus and data processing method
GB2561152A (en) Data processing systems
JP2008104164A (en) Image processor, and image processing method
US8488893B2 (en) Image compression apparatus and image compression method
US9769486B2 (en) Information processing apparatus, method of controlling the same, and storage medium
JP5614122B2 (en) Image data decoding device
US8515188B2 (en) Image processing apparatus
JP4380740B2 (en) Image processing device
JP5731816B2 (en) Image processing apparatus and image processing method
CN111052742A (en) Image processing
US20110096082A1 (en) Memory access control device and method thereof
US20110099340A1 (en) Memory access control device and method thereof
CN106919514B (en) Semiconductor device, data processing system, and semiconductor device control method
TW201939953A (en) Image compression system and method for compressing images with an image compression system
JP4380741B2 (en) Image processing device
CN110392259A (en) Image compression system and utilization image compression system are in the method for compressing image picture
JP6377222B2 (en) Information processing apparatus, control method, program, and recording medium
JP2010276686A (en) Image control apparatus
JP2008219848A (en) Circuit and method for decoding and viewing of image file
JP5654809B2 (en) Image processing apparatus and image processing method
JP2000322566A (en) Image display device and its controlling method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131216

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150410