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

Image processing apparatus and image processing method Download PDF

Info

Publication number
JP4560353B2
JP4560353B2 JP2004245093A JP2004245093A JP4560353B2 JP 4560353 B2 JP4560353 B2 JP 4560353B2 JP 2004245093 A JP2004245093 A JP 2004245093A JP 2004245093 A JP2004245093 A JP 2004245093A JP 4560353 B2 JP4560353 B2 JP 4560353B2
Authority
JP
Japan
Prior art keywords
image
defective pixel
pixel
image data
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004245093A
Other languages
Japanese (ja)
Other versions
JP2006067069A (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 JP2004245093A priority Critical patent/JP4560353B2/en
Publication of JP2006067069A publication Critical patent/JP2006067069A/en
Application granted granted Critical
Publication of JP4560353B2 publication Critical patent/JP4560353B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は撮像手段によって得られた画像に含まれる欠陥画素の補正方法に関するものである。   The present invention relates to a method for correcting a defective pixel included in an image obtained by an imaging means.

従来より、撮像素子によって撮像された画像データに対して、撮像素子の欠陥画素補正が行われている。具体的な方法としては、撮像素子から得られた画像を一旦メモリに格納し、ROMに予め格納された欠陥位置に基づいて欠陥画素を他の画素情報等を用いて補間するものである(たとえば特開平6−105242号公報)。   Conventionally, defective pixel correction of an image sensor has been performed on image data captured by the image sensor. As a specific method, an image obtained from an image sensor is temporarily stored in a memory, and a defective pixel is interpolated using other pixel information based on a defect position stored in advance in a ROM (for example, JP-A-6-105242).

また、特開平10−42244号公報には、10ビットの画素データを16ビットのメモリービット詰して格納する方法が記載されている。   Japanese Patent Application Laid-Open No. 10-42244 describes a method of storing 10-bit pixel data with 16-bit memory bits packed.

撮像素子より読み出された画素データのメモリへの書き込み処理におけるアドレス計算について説明する。   Address calculation in writing processing of pixel data read from the image sensor to the memory will be described.

図2は10ビットの画素データを16ビット幅のメモリーへ格納した場合の図である。分断した画素を次の16ビットの上位へ詰め込むのか下位に詰め込むのかといったバリエーションはあるものの5ワード(10バイト)の繰り返しとなる事が判る。10と16の最小公倍数である80ビットを16ビットで割った値が5ワードという繰り返しの大きさとなる。図3は9ビットの画素データを16ビット幅のメモリへ格納した場合である。9ワード(18バイト)単位の繰り返しとなっている。これに対して欠陥画素の位置は一般的に画素の画像上の座標で表現し、例えば図29の様に上からXライン目の左からY画素目というように表す。   FIG. 2 is a diagram when 10-bit pixel data is stored in a 16-bit width memory. Although there are variations such as whether the divided pixels are packed in the upper 16 bits or in the lower 16 bits, it is understood that the repetition is 5 words (10 bytes). A value obtained by dividing 80 bits, which is the least common multiple of 10 and 16, by 16 bits is a repetition size of 5 words. FIG. 3 shows a case where 9-bit pixel data is stored in a 16-bit width memory. It is repeated in units of 9 words (18 bytes). On the other hand, the position of the defective pixel is generally expressed by coordinates on the image of the pixel, for example, as shown in FIG. 29 from the left on the X line from the left to the Y pixel.

そして欠陥画素については、その画素データの値をそのまま使用することはせずに、周辺画素の値から欠陥画素のデータを補間して画素値を生成し、補正するのが一般的である。
特開平6−105242号公報 特開平10− 42244号公報
With respect to defective pixels, the pixel data values are generally not used as they are, but the pixel values are generally generated by correcting the defective pixel data from the peripheral pixel values and corrected.
JP-A-6-105242 JP-A-10-42244

上述したような欠陥画素補正処理を行う場合を考えると、例えば、欠陥画素を補正する為に周辺上下左右の4画素を平均した値を算出する場合、画像上の画素の座標からビット詰されたメモリ上の位置を少なくとも5回計算しなければならない。また、下位ビットから順にビット詰を行うとして、画像上の画素の座標からメモリのアドレスと格納されているビット位置を得るには以下の計算が必要となる。   Considering the case of performing the defective pixel correction processing as described above, for example, when calculating a value obtained by averaging four pixels at the top, bottom, left, and right in order to correct a defective pixel, bits are clogged from the coordinates of the pixel on the image. The location in memory must be calculated at least 5 times. Further, assuming that bit filling is performed in order from the lower bit, the following calculation is required to obtain the memory address and the stored bit position from the coordinates of the pixel on the image.

(1)画素順の番号=上からXライン目×画像の横幅+左からY画素目
(2)メモリ上のアドレス=((画素順の番号+1)×画素のビット幅)/メモリのビット幅
(3)格納されているビット位置=((画素順の番号+1)×画素のビット幅)%メモリのビット幅
そして再計算を避けるように最適化したとしても最低2回の掛け算と1回の割り算を含むため、1つの欠陥画素を補正するために上下左右の画素値の平均を求めるならアドレス計算に最低10回の掛け算と5回の割り算が必要であり、それに加えて画素値の平均を求める演算も必要となる。
(1) Number in pixel order = X line from top × horizontal width of image + Y pixel from left (2) Address on memory = ((number in pixel order + 1) × bit width of pixel) / bit width of memory (3) Stored bit position = ((pixel order number + 1) × pixel bit width)% bit width of memory and even if it is optimized to avoid recalculation, at least two times multiplication and one time Since it includes division, if the average of the pixel values of the upper, lower, left, and right sides is calculated to correct one defective pixel, the address calculation requires at least 10 multiplications and 5 divisions. The required calculation is also required.

これは上述のような欠陥画素補正プログラムの場合、アドレス計算が処理時間の支配的な要素となり、そのアドレス計算に要する時間が処理時間の遅れに直接作用する事を意味している。   This means that in the case of the defective pixel correction program as described above, the address calculation becomes a dominant element of the processing time, and the time required for the address calculation directly affects the delay of the processing time.

また処理時間を長くする原因は他にも存在する。エンディアンの異なるCPUを用いた場合を考えると、さらに処理が複雑となる。図2や図3は16ビット幅のメモリの例であるが、32ビット幅のメモリの場合もある。このようなビット詰めは比較的規模の小さなハードウェアによって構成する事が可能なので、撮像素子からAD変換されたものをハードウェアでビット詰めする構成が効率面でも最適であり、上記特許文献1(特開平10−42244)でもそのような構成となっている。しかし、使用するCPUによっては、CPUとビット詰めハードウェアでエンディアンすなわち基本的な情報単位となるビット数が一致していない場合もある。コスト等の理由で製品のラインナップ別にエンディアンの異なるCPUを採用する場合は、ビット詰めハードウェアとCPUでエンディアンを一致させる事は出来ない。この事はつまり、格納されているビット位置から画素を抽出する方法も知らなければならない事になり、より複雑な計算を必要とし、処理時間を長くする原因となる。   There are other reasons for increasing the processing time. Considering the case of using CPUs with different endians, the processing becomes further complicated. FIGS. 2 and 3 are examples of a 16-bit memory, but a 32-bit memory may be used. Since such bit padding can be configured by relatively small scale hardware, the configuration in which the bit converted by the AD from the image pickup device is optimal by hardware is also optimal in terms of efficiency. Japanese Patent Laid-Open No. 10-42244 has such a configuration. However, depending on the CPU to be used, there may be a case where the endianness, that is, the number of bits as a basic information unit does not match between the CPU and the bit stuffing hardware. If a CPU with a different endian is adopted for each product lineup due to cost or the like, the endian cannot be matched between the bit-packed hardware and the CPU. This means that it is necessary to know a method for extracting pixels from stored bit positions, which requires more complicated calculation and increases the processing time.

また処理時間を長くする原因は、DRAMに対するアクセス動作にもある。デジタルカメラの多画素化が進み、画像サイズが大きな物となる為、大容量で安価なDRAMを使う事でコストメリットがある。一方、DRAMに対するデータの格納はページという概念で管理されており、DRAMは同一ページ内のアクセスはバースト的に行える(バースト転送)ため高速であるがページの異なる場所へのアクセスはアクセスに時間が掛かる。つまりできるだけ局所的にアクセスを行い、ページをまたがるアクセスを避ける事で効率が良くなることが予想される。しかし、上下左右の同一色の画素を用いる場合を考えると、一般に撮像素子のカラーフィルタの同一色は連続していない事が多く、例えば図26の様な配列の様に同一色が1画素おきに現れるパターンとなっているため、上下の同一色の画素とは2ライン上と2ライン下の画素を意味する。図30の○で囲んだ欠陥画素を補間する為には点線の○で囲んだ画素の値を使う事になる。つまり、1つの欠陥画素を補正する為には4ラインの距離にまたがる領域へのアクセスとなるのである。例えば1画素が12ビットとして1ラインが1440画素であれば4ラインの距離は、
(4)12ビット×1440画素×4ライン÷16ビット =4320ワード(8640バイト)
となり、8Kバイトを超える事になる。DRAMの構成等に左右されるが1つのページは16Kバイトとか32Kバイトといった大きさが使用される事から、単純に上下2ラインの画素を順次アクセスすればページをまたがるアクセスが頻繁に発生し、処理時間を長くする要因となる。
Also, the cause of increasing the processing time is the access operation to the DRAM. Since the number of pixels of a digital camera is increasing and the image size becomes large, there is a cost merit by using a large capacity and inexpensive DRAM. On the other hand, data storage in the DRAM is managed based on the concept of pages, and access to the same page is bursty (burst transfer), so access to different locations on the page is time consuming. It takes. In other words, it is expected that efficiency will be improved by accessing as locally as possible and avoiding access across pages. However, considering the use of pixels of the same color on the top, bottom, left and right, in general, the same color of the color filter of the image sensor is often not continuous. For example, every other pixel of the same color as in the arrangement shown in FIG. Therefore, the upper and lower pixels of the same color mean pixels above and below two lines. In order to interpolate a defective pixel surrounded by a circle in FIG. 30, the value of the pixel surrounded by a dotted circle is used. That is, in order to correct one defective pixel, access to an area extending over a distance of 4 lines is required. For example, if 1 pixel is 12 bits and 1 line is 1440 pixels, the distance of 4 lines is
(4) 12 bits x 1440 pixels x 4 lines / 16 bits = 4320 words (8640 bytes)
It will exceed 8K bytes. Although it depends on the configuration of the DRAM, etc., one page uses a size of 16 Kbytes or 32 Kbytes, so if you simply access the upper and lower two lines of pixels sequentially, accesses that cross the page occur frequently. It becomes a factor which lengthens processing time.

また画像転送との同期という観点で見ると、デジタルカメラの多画素化が進み、画像サイズが大きくなると、撮像素子からAD変換し、ビット詰めしたものをメモリーへ転送するための転送時間も大きくなり、欠陥画素補正処理を効率よく行うことが難しい状況にある。特にデジタルカメラ等で欠陥画素を動的に補正する場合は、その処理時間が連写性能等に重要な影響を与えるため、欠陥画素補正処理時間を短く、高速欠陥画素補正処理を可能とする事は非常に重要となる。   Also, from the viewpoint of synchronization with image transfer, as the number of pixels of digital cameras increases and the image size increases, the transfer time for transferring AD-converted bits from the image sensor to the memory also increases. Therefore, it is difficult to perform defective pixel correction processing efficiently. Especially when a defective pixel is dynamically corrected by a digital camera or the like, the processing time has an important influence on the continuous shooting performance, etc., so that the defective pixel correction processing time is shortened and high-speed defective pixel correction processing can be performed. Is very important.

そこで、本発明の課題は、上述したようなデジタルカメラ等における画像データのメモリへの格納処理、アクセス動作を高速化し、各種処理に要する時間を極力短縮し、欠陥画素補正処理等の画像データの各種処理の高速化を実現するものである。   Accordingly, an object of the present invention is to speed up the storage processing and access operation of image data in a memory such as the above-described digital camera, to shorten the time required for various processing as much as possible, and to correct image data such as defective pixel correction processing. It is intended to increase the speed of various processes.

上述の課題を解決するために、本願の請求項1に記載の発明によれば、撮像手段によって得られた画像データ中に含まれる欠陥画素の補正を行う画像処理装置において、前記撮像手段より得られた前記画像データをデジタル画像データに変換し画像メモリにビット詰めして転送する手段と、前記画像メモリより補正すべき欠陥画素の位置データに基づいてその周辺の複数のデジタル画像データを読み出して補間演算を行うことにより欠陥画素補正を行い、補正された画像データを前記画像メモリに書き込む補正処理手段とを備え、前記画像メモリは論理的にページ単位で扱われ、前記補正処理手段は前記欠陥画素の補間演算に用いる周辺のデジタル画像データを読み出す際、前記画像メモリのページ境界をまたいで周辺のデジタル画像データが存在する場合には、前記ページの切り替え回数が最小となるように読み出し順序を制御するようにした画像処理装置を特徴とする。
In order to solve the above-described problem, according to the first aspect of the present invention, in an image processing apparatus that corrects a defective pixel included in image data obtained by an imaging unit, the image processing unit obtains the image from the imaging unit. Means for converting the received image data into digital image data, bit-packing it in an image memory, and transferring a plurality of peripheral digital image data based on position data of defective pixels to be corrected from the image memory Correction processing means for performing defective pixel correction by performing an interpolation operation and writing the corrected image data into the image memory, the image memory is logically handled in units of pages, and the correction processing means When reading peripheral digital image data used for pixel interpolation, the peripheral digital image data straddling the page boundary of the image memory If present, and wherein the image processing apparatus number of times of switching the pages is to control the reading order so as to minimize.

本発明によれば、画像メモリから任意の画素を抽出する為の処理を中間言語のプログラムで実行することができ、従来のデータ処理において支配的であったアドレスとビット位置の算出時間を無くし、処理の高速化を図ることができる。   According to the present invention, the process for extracting an arbitrary pixel from the image memory can be executed by an intermediate language program, eliminating the calculation time of the address and bit position, which has been dominant in the conventional data processing, Processing speed can be increased.

(第1の実施例)
図1は第1の実施例のブロック図である。1はカメラ全体の処理に加えて本発明におけるコンピュータ言語のインタプリタを実行するCPUである。カメラ全体の処理を行うために例えばレンズやシャッター等の部材も接続されているが、本発明の説明には不要である為省略した。2はCPU1と同一チップ内に構成されたチップ内蔵のメモリである。CPU1とはチップ内の専用BUSで接続されている為、待ち時間がほとんどなく高速アクセス可能な高速メモリである。3はCPU1に読み込まれて動作するプログラムを格納してあるROMである。このROMにはCPU1が理解可能なネィティブコード以外に本発明におけるコンピュータ言語のコードも格納されている。
(First embodiment)
FIG. 1 is a block diagram of the first embodiment. A CPU 1 executes a computer language interpreter according to the present invention in addition to processing of the entire camera. For example, a lens and a shutter are connected to perform processing of the entire camera, but are omitted because they are not necessary for the description of the present invention. Reference numeral 2 denotes a chip built-in memory configured in the same chip as the CPU 1. Since the CPU 1 is connected by a dedicated BUS in the chip, it is a high-speed memory that can be accessed at high speed with almost no waiting time. A ROM 3 stores a program that is read and operated by the CPU 1. In addition to the native code that the CPU 1 can understand, this ROM also stores a computer language code according to the present invention.

8は撮像面に入射された光学像を光電変換して画像信号に変換する撮像素子であり、7は撮像素子8より出力されたアナログ画像信号出力をデジタル信号へ変換するAD変換器である。4はAD変換器7からの出力をビット詰めし、画像用メモリ6へ格納する処理を行う画像プロセッサである。画像プロセッサ4と画像メモリ6は画像転送用BUSで接続されており、画像プロセッサ4が画像転送用BUSのバスマスタとして機能する。   Reference numeral 8 denotes an image sensor that photoelectrically converts an optical image incident on the imaging surface into an image signal. Reference numeral 7 denotes an AD converter that converts an analog image signal output from the image sensor 8 into a digital signal. Reference numeral 4 denotes an image processor that performs processing to pack the output from the AD converter 7 into bits and store it in the image memory 6. The image processor 4 and the image memory 6 are connected by an image transfer BUS, and the image processor 4 functions as a bus master of the image transfer BUS.

画像プロセッサ4は画像のビット詰めをしながらの転送以外にもビット詰めされた画像を読み出して、色信号処理を行い再び画像用メモリ6の任意のアドレスへ書き込むなどの機能を有し、各種機能はCPU1からのコントロールにより活性化され制御される。5はCPU外部BUSの任意のアドレス空間を通して画像転送用BUSの任意のアドレス空間への読み書きを可能とするためのメモリウインドウである。このメモリウインドウ5を介在してCPU1から画像用メモリ6を読み書きする事が可能となる。またメモリウインドウ5はページ番号を切り替える事で画像メモリ6のベースアドレスを変更する事が可能である。このように画像転送用BUSは画像転送専用に設けられ、CPU外部BUSを分離したことによって、CPUの責務であるカメラの各種メカニズムや撮影動作に係わる処理のコントロールと、画像処理プロセッサ4と画像メモリ6間における画像データの転送を並列に且つ効率的に実行する事が可能となり、結果的に余ったCPUタイムにHALT命令でCPUを停止させる事によって消費電力を削減する事も可能となる。   The image processor 4 has functions such as reading out an image that has been bit-packed in addition to transfer while bit-packing the image, performing color signal processing, and writing it again to an arbitrary address in the image memory 6. Is activated and controlled by the control from the CPU 1. Reference numeral 5 denotes a memory window for enabling reading / writing to an arbitrary address space of the image transfer BUS through an arbitrary address space of the CPU external BUS. The image memory 6 can be read and written from the CPU 1 via the memory window 5. The memory window 5 can change the base address of the image memory 6 by switching the page number. As described above, the image transfer BUS is provided exclusively for image transfer, and by separating the CPU external BUS, control of various camera mechanisms and shooting operations, which are the responsibility of the CPU, the image processor 4 and the image memory It is possible to efficiently transfer image data between the six in parallel, and as a result, it is possible to reduce power consumption by stopping the CPU with a HALT command during the remaining CPU time.

図4は第一の実施例のビット詰めされた画像の内部表現を示す図である。本実施例では1画素は12ビットであり、3ワード、4画素の繰り返しになっている。ここで繰り返しパターンのベースアドレスをMとすると各画素のMとのオフセットとビット位置に対してそれぞれPixel1〜4のビット位置名称を定義する。   FIG. 4 is a diagram showing an internal representation of the bit-stuffed image of the first embodiment. In this embodiment, one pixel is 12 bits, and is repeated for 3 words and 4 pixels. Here, when the base address of the repetitive pattern is M, the bit position names of Pixels 1 to 4 are defined for the offset and bit position of each pixel with respect to M, respectively.

図1のメモリウインドウ5のサイズは64Kバイトであり、メモリウインドウ5の中のオフセットアドレスを表現するのに必要なビット長は16ビットである。もしウインドウのオフセットではなく1枚の画像の中のオフセットアドレスで表現すれば800万画素程度の画像で24ビットは必要になる。メモリウインドウ5のオフセットという表現とする事でオペランドサイズを3分の2の容量にする事が出来る。   The size of the memory window 5 in FIG. 1 is 64 Kbytes, and the bit length necessary for expressing the offset address in the memory window 5 is 16 bits. If it is expressed by the offset address in one image instead of the window offset, an image of about 8 million pixels requires 24 bits. By expressing the offset of the memory window 5, the operand size can be reduced to two-thirds capacity.

それに対してビット位置は4種類存在する為、それぞれの画素を抽出してスタックに積む命令が4命令とスタックへ詰まれた4画素から補間画素値を算出して指定の画素へ格納する命令が4命令とその他ページ切り替え等の命令を合わせても128以下である事からオペコード1バイトとオペランド2バイトの3バイト命令を基本として命令セットを設計する事が可能である。   On the other hand, since there are four types of bit positions, there are four instructions that extract each pixel and load it on the stack, and four instructions that calculate the interpolated pixel value from the four pixels packed in the stack and store it in the designated pixel. Since the total number of instructions and other page switching instructions is 128 or less, it is possible to design an instruction set based on a 3-byte instruction of 1 byte of opcode and 2 bytes of operand.

図5は本実施例のコンピュータ言語の命令表である。例えばPushPixel1という命令はオペランドである2バイト(16ビット)のウインドウ内のアドレスと引数として、そのアドレスからPixel1形式のビット位置の画素情報を抽出し、スタック上に積むという動作を行う命令である。同様にPixel1〜4までの形式の命令が存在する。また、ReduceAndSavePixel1という命令はスタック上に積まれた4画素分の情報から左右の画素の画素間レベル差と上下の画素の画素間レベル差を比較してレベル差の少ない側のペアの平均値を補間画素の値とし、オペランドであるアドレスのPixel1形式のビット位置へ格納する命令である。ReduceAndSaveも同様にPixel1〜4までの形式の命令が存在する。   FIG. 5 is a computer language instruction table of this embodiment. For example, an instruction “PushPixel1” is an instruction that performs an operation of extracting pixel information of a bit position in the Pixel1 format from the address as an argument and an argument in a 2-byte (16-bit) window as an operand, and stacking it on the stack. Similarly, there are instructions of the formats from Pixel 1 to Pixel 4. Also, the command ReduceAndSavePixel1 compares the pixel level difference between the left and right pixels and the pixel level difference between the upper and lower pixels from the information for the four pixels stacked on the stack, and calculates the average value of the pair on the side with the lower level difference. This is an instruction for storing the value of the interpolated pixel at the pixel 1 bit position of the operand address. Similarly, ReduceAndSave also has instructions in the format of Pixels 1 to 4.

ChangeNextPageは図1のメモリウインドウ5のページ番号を1つ増加させ、次のページへ切り替える命令で、ChangePrevPageは逆にページ番号を1つ減少させ前のページへ切り替える命令である。またChangePage命令には2バイトのオペランドで指定されたページ番号へ直接切り替える命令である。   ChangeNextPage is an instruction to increase the page number of the memory window 5 in FIG. 1 by 1 and switch to the next page. ChangePrevPage is an instruction to decrease the page number by 1 and switch to the previous page. The ChangePage instruction is an instruction for directly switching to a page number designated by a 2-byte operand.

Swap命令にはオペランドは無く、スタック上のトップと2番目のデータを入れ替えるという命令である。このような命令を併用する事でページ切り替え命令を削減できるが、詳しくは後に述べる事にする。   The Swap instruction has no operand, and is an instruction to swap the top and second data on the stack. By using such commands together, page switching commands can be reduced, but details will be described later.

Exit命令は1枚の画像が終了した事を示す命令で、Return命令は一旦インタプリタを終了して復帰する命令である。   The Exit command is a command indicating that one image has been completed, and the Return command is a command for once terminating the interpreter and returning.

次に画像転送との同期について説明する。1枚の画像の転送が完全に終了してから欠陥画素補正を行うよりも、画像の転送中でも転送が完了した画像データについては欠陥画素補正をスタートさせた方がトータルの処理時間を短縮可能である。しかし、単純に画像転送と同時に欠陥画素補正をスタートさせてしまっては、欠陥画素補正が画像の転送よりも先に終了してしまい、正しく補正が出来なくなってしまう。そこで本実施例では画像を4つのブロックに分け、4分の1の画像が転送終了する度に図1の画像プロセッサ4から図1のCPU1へ割り込みが掛かるように構成してあり、コンピュータ言語のプログラムも画像の4分の1の単位でReturn命令が挿入されている。そして図1の画像プロセッサ4から割り込みが入るとインタプリタをスタートさせ、Return命令を実行する事でインタプリタを一旦抜ける。次の割り込みが入る事で再び次の命令からインタプリタを再スタートさせるというように動作させる事で、画像転送と欠陥画素補正の同期をとっている。これによって画像1枚分の画像データが全て転送されるまでは欠陥画素補正処理を待つことなく、画像データの転送と欠陥画素補正処理を並行して且つ同期を取りながら効率的に実行することができる。   Next, synchronization with image transfer will be described. It is possible to shorten the total processing time by starting defective pixel correction for image data that has been transferred even during image transfer, rather than performing defective pixel correction after the transfer of one image has been completed. is there. However, if the defective pixel correction is simply started simultaneously with the image transfer, the defective pixel correction ends before the image transfer, and correct correction cannot be performed. Therefore, in this embodiment, the image is divided into four blocks, and the image processor 4 in FIG. 1 is interrupted to the CPU 1 in FIG. 1 every time a quarter of the image is transferred. In the program, a Return instruction is inserted in a unit of a quarter of the image. When an interrupt is input from the image processor 4 in FIG. 1, the interpreter is started, and the interpreter is temporarily exited by executing a Return instruction. The image transfer and the defective pixel correction are synchronized by causing the interpreter to restart again from the next instruction when the next interrupt is input. Thus, the image data transfer and the defective pixel correction process can be efficiently executed in parallel and in synchronization without waiting for the defective pixel correction process until all the image data for one image is transferred. it can.

次にインタプリタの実装について説明する。図7は本実施例におけるインタプリタの心臓部分部の実装である。本実施例のCPUは例えばインテルの8086互換の命令セットである。インタプリタの実行中はレジスタを図6のような役割で使用しており、図7のラベルInstTableに各命令の解釈部分へのジャンプテーブルが登録されており、命令のバイナリコードはラベルInstTableからのオフセット値で定義されている。そして、インテルの8086はセグメント内のジャンプを16ビットのオフセットアドレスで表現可能である。   Next, the implementation of the interpreter will be described. FIG. 7 shows the implementation of the heart portion of the interpreter in this embodiment. The CPU of this embodiment is, for example, an Intel 8086 compatible instruction set. During execution of the interpreter, registers are used as shown in FIG. 6. A jump table to the interpretation part of each instruction is registered in the label InstTable in FIG. 7, and the binary code of the instruction is offset from the label InstTable. Defined by value. The Intel 8086 can express a jump in a segment with a 16-bit offset address.

したがって、命令コードのバイナリ値はすべて偶数の数字であるため全命令として256ではなく128命令を表現可能である。ラベルFetchからの4命令がこのインタプリタの心臓部分である。この事から非常に高速に解釈可能である事がわかる。また非常に少ないコードサイズでインタプリタを実装できる。本実施例ではこのインタプリタは図1のROM3に記憶しているがカメラのスタートアップ処理の中で図1の内蔵BUSで高速アクセス可能な主記憶領域のメモリ2へ転送して実行する為さらに高速に動作可能である。   Therefore, since all binary values of the instruction code are even numbers, 128 instructions can be expressed instead of 256 as all instructions. Four instructions from the label Fetch are the heart of this interpreter. This shows that it can be interpreted very quickly. It is also possible to implement an interpreter with a very small code size. In this embodiment, this interpreter is stored in the ROM 3 in FIG. 1, but is transferred to the memory 2 in the main storage area that can be accessed at high speed by the built-in BUS in FIG. It is possible to operate.

またスタックアーキテクチャについて説明すると、図9のリスト1は本実施例のコンピュータ言語で書かれたプログラムのアッセンブラ表記リストである。実際のプログラムはバイナリコードで表現されているが理解しやすいようにアッセンブラ表記のリストで説明を行う事とする。インタプリタはスタックを介在させてデータを処理を実行していく。上下左右の画素のデータを収集するプログラムはリスト1のようになる。同リストのプログラムでは、0000番地から0009番地のプログラムを実行する事により、上下左右の画素情報がスタックへ積まれる。0009番地まで実行した状態のスタックは図8のようになる。000Cの命令を実行すれば4つのスタックが消費され、補間データが計算されて欠陥画素アドレスへ格納される。これが欠陥画素を補間するプログラムの基本的な構成である。スタックは図1のCPU1と同一チップ内に構成されたチップ内蔵の主記憶領域となるメモリ2を使用しているので非常に高速なアクセスが可能である。   Further, the stack architecture will be described. List 1 in FIG. 9 is an assembler notation list of programs written in the computer language of this embodiment. Although the actual program is expressed in binary code, it will be explained in a list in assembler notation for easy understanding. The interpreter executes data processing through the stack. A program that collects data of upper, lower, left, and right pixels is as shown in Listing 1. In the program of the list, by executing the program from address 0000 to address 0009, the pixel information of the upper, lower, left and right is loaded on the stack. The stack after execution up to address 0009 is as shown in FIG. If the 000C instruction is executed, four stacks are consumed, and interpolation data is calculated and stored in the defective pixel address. This is the basic configuration of a program for interpolating defective pixels. Since the stack uses the memory 2 which is a main memory area built in the chip, which is configured in the same chip as the CPU 1 of FIG. 1, it can be accessed at a very high speed.

次にメモリのページをまたがる欠陥画素補正処理について説明する。上下4ラインにまたがる画素を使って、1つの画素を補正する為、実際にはページ境界をまたがって画素を集めなければ補正画素値を求める事が出来ない場合が多く発生する。図10は起こりうるページ境界をまたがる配置を分類したものである。ページの境界線をまたがる配置はパターンAからDのどれかにあてはまる。また1つの境界線の前後に沢山のパターンDとパターンAが存在するので、ページ切り替えが頻繁に起こると非常に効率が低下する事が予想される。ページ切り替えの回数を最小減に抑えて補正を行う必要があるのである。   Next, the defective pixel correction process across the memory pages will be described. Since one pixel is corrected using pixels extending over the upper and lower four lines, in many cases, the corrected pixel value cannot be obtained unless the pixels are actually collected across the page boundary. FIG. 10 categorizes the arrangements that can occur across the page boundaries. Arrangement that crosses the border of the page applies to any of patterns A to D. Also, since there are many patterns D and A before and after one boundary line, it is expected that the efficiency will be greatly reduced if page switching occurs frequently. It is necessary to perform correction while minimizing the number of page switching.

ここでページ切り替え回数の最適化について考え、境界線の前後に欠陥画素が集中している場合の処理方法を説明する。図11のリスト2はページの境界線付近にパターンAの画素が3つ存在していた場合のプログラムである。リスト2の0000番地から0006番地までの実行を終えた時に3つの欠陥画素に対して、その2ライン上の同一色画素がそれぞれスタックへ積まれている。図12はその時点でのスタックの状態である。3つの欠陥を仮に欠陥1、欠陥2、欠陥3と呼び区別する事とすると、欠陥1の上、欠陥2の上、欠陥3の上の画素値がスタックへ詰まれている。   Here, considering the optimization of the number of page switching, a processing method when defective pixels are concentrated before and after the boundary line will be described. List 2 in FIG. 11 is a program when there are three pixels of pattern A near the boundary of the page. When the execution from the address 0000 to the address 0006 in the list 2 is finished, the same color pixels on the two lines are stacked on the stack for the three defective pixels. FIG. 12 shows the state of the stack at that time. If the three defects are called defect 1, defect 2, and defect 3, the pixel values above defect 1, defect 2, and defect 3 are packed in the stack.

0009番地の命令を実行する事でウインドウのページが次のページに切り替わる。000C番地の命令で欠陥1の下の画素、000F番地の命令で欠陥1の右の画素、0012番地の命令で欠陥1の左の画素をスタックに積む事になる。   By executing the instruction at address 0009, the window page is switched to the next page. The pixel under the defect 1 is placed on the stack by the instruction at address 000C, the pixel at the right side of defect 1 is placed at the instruction at address 000F, and the pixel left at the defect 1 is placed on the stack by the instruction at address 0012.

図13はリスト2を0012番地まで実行したときのスタックの状態を示している。スタックトップから4つを見ると図8とまったく同じ順序で欠陥1を補正するための画素が積まれている事がわかる。   FIG. 13 shows the state of the stack when list 2 is executed up to address 0012. Looking at the four from the top of the stack, it can be seen that pixels for correcting defect 1 are stacked in exactly the same order as in FIG.

その状態で0015番地を実行すればスタックを4つ消費して欠陥画素を補正する値が算出されたの後、オペランドで指定された欠陥画素1へ書き込まれる。図14は0015番地を実行した直後のスタックの状態である。1つ前のページに存在する欠陥2の上の画素と欠陥3の上の画素がスタックに残っている。本来なら再びページを戻して欠陥2の上の画素をスタックへ積まなければならないが、命令の順序を最適化する事によりページ切り替えを大幅に削減できる事をこのプログラムが証明している。   If address 0015 is executed in this state, a value for correcting the defective pixel by calculating four stacks is calculated, and then written to the defective pixel 1 designated by the operand. FIG. 14 shows the state of the stack immediately after execution of address 0015. The pixel above the defect 2 and the pixel above the defect 3 existing in the previous page remain in the stack. Originally, the page must be returned again and the pixels above defect 2 must be stacked on the stack, but this program proves that page switching can be greatly reduced by optimizing the order of instructions.

引き続き001D番地までを実行すればスタックは図15のような状態になる。スタックトップから4つを見ると図8とまったく同じ順序で欠陥2を補正するための画素が積まれている事がわかる。   If the processing up to the address 001D is continued, the stack becomes as shown in FIG. Looking at the four from the top of the stack, it can be seen that pixels for correcting defect 2 are stacked in exactly the same order as in FIG.

同様にリスト2を最後まで実行すればたった一回のページ切り替え命令だけで、ページ境界を越えて補間のための画素を必要とする3つの欠陥画素を補正する事が出来る。   Similarly, if list 2 is executed to the end, only one page switching command can be used to correct three defective pixels that require pixels for interpolation beyond the page boundary.

ここでスタックの限界について説明する。ページ境界を越えて補間のための画素を必要とする欠陥画素が3つだけならページ切り替えは1度で良いが、たくさんある場合はインタプリタで用意されているスタックの量を超えてしまう事が考えられる。そこでコンパイラはインタプリタで用意されているスタックの範囲を超えない単位でページを切り替えて処理を行い、スタックを回復させてからページを戻して残りの処理を行うようなコード生成を行う。   Here, the limit of the stack will be described. If there are only three defective pixels that need interpolation pixels beyond the page boundary, the page switching may be performed once. However, if there are many defective pixels, the amount of stacks prepared by the interpreter may be exceeded. It is done. Therefore, the compiler performs code generation by switching pages in units that do not exceed the stack range prepared by the interpreter, restoring the stack, returning the page, and performing the remaining processing.

次にスタックSWAPについて説明する。図10のパターンBの場合は上と左のデータが同一ページなので、ページ切り替えの前に上と左のデータがスタックへ詰まれる事になる。欠陥画素の上と左の画素がスタック上で隣接する事になり、図8とまったく同じ順序にするためには工夫が必要となる。上下と左右がペアになっている必要がある。   Next, the stack SWAP will be described. In the case of pattern B in FIG. 10, since the upper and left data are the same page, the upper and left data are jammed in the stack before the page switching. The upper and left pixels on the defective pixel are adjacent to each other on the stack, and it is necessary to devise in order to make the same order as in FIG. The top and bottom and left and right must be paired.

リスト3はそれを解決するプログラムである。0003番地と0006番地を実行した結果スタックの状態は図16のようになっている。リスト3の0009番地を実行するとページが切り替わる。そして、リスト3の000Cを実行して欠陥の下の画素を積み、000F番地のSWAP命令を実行する事でスタックトップと2番目を入れ替えている。図18の左側がSWAP命令を実行する前で、図18の右側がSWAP命令を実行した後のスタックの状態である。   Listing 3 is a program that solves it. As a result of executing the addresses 0003 and 0006, the state of the stack is as shown in FIG. When the address 0009 in list 3 is executed, the page is switched. Then, 000C in list 3 is executed to stack the pixels under the defect, and the SWAP instruction at address 000F is executed to swap the stack top and the second. The left side of FIG. 18 shows the state of the stack before the execution of the SWAP instruction, and the right side of FIG. 18 shows the state of the stack after the execution of the SWAP instruction.

ここでページをまたがる画素に対する処理を説明する。6バイト周期の繰り返しなので1ページ64kで扱うとページをまたがる画素が出てくる。図19はページ境界にまたがる画素について示した図である。図19のPixel3はページ境界が線ページ境界Aになったときに2ページにまたがり、図19のPixel2はページ境界Bになった時に2ページにまたがる。図20はページ境界をまたぐ画素を扱うための命令である。   Here, a process for pixels across pages will be described. Since it is a 6-byte cycle, when it is handled with one page 64k, pixels that cross the page appear. FIG. 19 is a diagram showing pixels straddling a page boundary. Pixel 3 in FIG. 19 spans two pages when the page boundary reaches the line page boundary A, and Pixel 2 in FIG. 19 spans two pages when the page boundary B reaches. FIG. 20 shows instructions for handling pixels that cross a page boundary.

次に補正プログラムコンパイラについて説明する。上記のようなプログラムはカメラの内部で実行される。一方、上記のようなプログラムはカメラの生産過程で生成されカメラ内部のROMへ格納される。図21はカメラの欠陥補正プログラムが製造される過程を示している。カメラ内部の欠陥画素検出プログラムによって撮像素子上の欠陥画素が検出される。そして、工場の設備に転送され欠陥画素ポジション情報ファイルが作成される。次に工場の設備内部の補正プログラムコンパイラによって欠陥画素補正プログラムが生成される。生成された欠陥画素補正プログラムが再びカメラの内部へ転送される。以後、カメラ内部のインタプリタによって欠陥画素補正プログラムが実行される。   Next, the correction program compiler will be described. The above program is executed inside the camera. On the other hand, the program as described above is generated in the production process of the camera and stored in the ROM inside the camera. FIG. 21 shows a process in which a camera defect correction program is manufactured. A defective pixel on the image sensor is detected by a defective pixel detection program inside the camera. Then, it is transferred to factory equipment and a defective pixel position information file is created. Next, a defective pixel correction program is generated by a correction program compiler inside the factory equipment. The generated defective pixel correction program is transferred again into the camera. Thereafter, a defective pixel correction program is executed by an interpreter inside the camera.

図22は補正プログラムコンパイラのブロックダイアグラムである。コンパイラは複数のブロックで構成する事でそれぞれのブロックの役割を明確にして全体の複雑度を下げる構成とするのが一般的である。それぞれのブロック入力はその前段のブロックの出力であり、また、出力は次のブロックの入力となっている。   FIG. 22 is a block diagram of the correction program compiler. In general, a compiler is constituted by a plurality of blocks so that the role of each block is clarified and the overall complexity is reduced. Each block input is the output of the preceding block, and the output is the input of the next block.

図22において、221はファイル語句解析部であり、入力の欠陥画素ポジション情報ファイルのフォーマットを解析し、コンパイラの内部表現へ変換する部分である。222はポジション順へソートする部分である。このブロックよりも後段のブロックでは欠陥画素ポジション情報が画像の上から下に順に流れて来る事を前提として設計されているためこのブロックでソーティングを行う。223は補正用画素の抽出を行う部分である。1つの欠陥画素に対して上下左右の4画素の情報を使って補間値を計算するため、その座標を抽出する。このブロックの出力は、1つの欠陥画素と4画素の座標が1つの組となり、1つの欠陥画素を演算子とすれば4つのオペランドを持った前置記法の4項演算子として扱う事が出来る。欠陥画素を求める式は
(5)欠陥ポジション補正値=補間値計算(上画素値,上画素値,右画素値,左画素値)
であり、それを行うプログラムの、この段階の中間表現は例えば、
(6)欠陥画素ポジション上画素ポジション,下画素値ポジション,右画素値ポジション,左画素値ポジション
という式の連続として扱う事ができる。それぞれのポジション情報はまだ、画像上の座標で表現されている。
In FIG. 22, reference numeral 221 denotes a file phrase analysis unit which analyzes the format of an input defective pixel position information file and converts it into an internal representation of the compiler. Reference numeral 222 denotes a part for sorting in the order of positions. Since the block subsequent to this block is designed on the assumption that the defective pixel position information flows in order from the top to the bottom of the image, sorting is performed in this block. Reference numeral 223 denotes a portion for extracting correction pixels. In order to calculate an interpolation value using information of four pixels on the top, bottom, left, and right for one defective pixel, the coordinates are extracted. The output of this block can be handled as a quaternary operator with a prefix notation with four operands if the coordinates of one defective pixel and four pixels are one set and one defective pixel is an operator. . The equation for determining the defective pixel is (5) Defect position correction value = interpolation value calculation (upper pixel value, upper pixel value, right pixel value, left pixel value)
An intermediate representation of this stage of the program that does it is, for example:
(6) Defective pixel position The defective pixel position can be handled as a series of expressions of upper pixel position, lower pixel value position, right pixel value position, and left pixel value position. Each position information is still expressed by coordinates on the image.

図22の224は画像上の座標をビット詰めされたメモリーの格納形式である、ページ番号+オフセットアドレス+格納ビット位置へ変換する。ページ番号+オフセットアドレス+格納ビット位置の表現を画素アドレス形式と定義すると、このブロックの出力は
(7)欠陥画素アドレス上画素アドレス,下画素値アドレス,右画素値アドレス,左画素値アドレス
の羅列となる。この内部表現を「欠陥画素アドレス式」と定義する。
Reference numeral 224 in FIG. 22 converts the coordinates on the image into bit number-packed memory storage format, that is, page number + offset address + storage bit position. If the expression of page number + offset address + storage bit position is defined as the pixel address format, the output of this block is (7) a list of defective pixel address upper pixel address, lower pixel value address, right pixel value address, left pixel value address It becomes. This internal representation is defined as a “defective pixel address expression”.

図22の225のブロックでは欠陥画素ポジションが図10のどのパターンに当てはまるのかを判定し、欠陥画素アドレスに対して属性として設定する。また、パターンA〜パターンDのどれにも当てはまらないものはパターンNと定義し属性として設定する。属性のついた中間表現である「欠陥画素アドレス式」は
(8)欠陥画素アドレスN 上画素値アドレス,下画素値アドレス,右画素値アドレス,左画素値アドレス
(9)欠陥画素アドレスD 上画素値アドレス,下画素値アドレス,右画素値アドレス,左画素値アドレス
(10)欠陥画素アドレスD 上画素値アドレス,下画素値アドレス,右画素値アドレス,左画素値アドレス
(11)欠陥画素アドレスA 上画素値アドレス,下画素値アドレス,右画素値アドレス,左画素値アドレス
のようになる。
In block 225 in FIG. 22, it is determined to which pattern in FIG. 10 the defective pixel position applies, and set as an attribute for the defective pixel address. Further, a pattern that does not apply to any of the patterns A to D is defined as a pattern N and set as an attribute. “Defective pixel address expression” which is an intermediate expression with attributes is: (8) defective pixel address N upper pixel value address, lower pixel value address, right pixel value address, left pixel value address (9) defective pixel address D upper pixel Value address, lower pixel value address, right pixel value address, left pixel value address (10) defective pixel address D upper pixel value address, lower pixel value address, right pixel value address, left pixel value address (11) defective pixel address A The upper pixel value address, the lower pixel value address, the right pixel value address, the left pixel value address, and so on.

ここで前置き記法から後置き記法(逆ポーランド法)への変換について説明する。   Here, the conversion from the prefix notation to the postfix notation (reverse Polish method) will be described.

図22の226は前置き記法で表現されている中間表現を後置き記法(逆ポーランド法)へ変換する。演算子に相当する「欠陥画素アドレス」を最後にもってくれば後置き記法に変換される。つまり、
(12)欠陥画素アドレス 上画素値アドレス,下画素値アドレス,右画素値アドレス,左画素値アドレス
という内部表現を
(13)上画素値アドレス,下画素値アドレス,右画素値アドレス,左画素値アドレス 欠陥画アドレス
という内部表現に変更するのがこのブロックの主な役目である。
22 of FIG. 22 converts the intermediate representation expressed by the prefix notation into the postfix notation (reverse Polish method). If the “defective pixel address” corresponding to the operator is brought to the end, it is converted into postfix notation. That means
(12) Defective pixel address Internal representation of upper pixel value address, lower pixel value address, right pixel value address, left pixel value address (13) upper pixel value address, lower pixel value address, right pixel value address, left pixel value Address The main function of this block is to change the internal representation of the defective image address.

本実施例のプログラム言語がスタックを使って処理を進める為、後置き記法(逆ポーランド記法)が本実施例のプログラム言語の処理順序となるからである。   This is because the postfix notation (reverse Polish notation) is the processing order of the program language of the present embodiment because the program language of the present embodiment proceeds with processing using the stack.

ここで最適順序への解析について説明する。図22の226の解析部の入力は前置き記法の欠陥画素アドレス式の行列であり、属性としてページ境界を越える形式(パターンA〜パターンD+パターンN)が付加されている。これをBNFで表現すると、図23のようになる。ページ境界付近では多くの場合は連続した式パターンDの後に式パターンBまたは式パターンCがありその後、連続した式パターンAの順になる。なぜなら、欠陥画素は図22の222でソーティングされており、図10のパターンを見れば構造上その順番でしか現れない事が判る。そこで、連続した式パターンDと連続した式パターンAを構文として理解する事で処理を進める事とする。   Here, the analysis to the optimal order will be described. The input of the analysis unit 226 in FIG. 22 is a matrix of a defective pixel address formula of the prefix notation, and a format (pattern A to pattern D + pattern N) exceeding the page boundary is added as an attribute. When this is expressed in BNF, it becomes as shown in FIG. In the vicinity of the page boundary, in many cases, there is a formula pattern B or a formula pattern C after a continuous formula pattern D, and then the sequential formula pattern A is in this order. This is because defective pixels are sorted at 222 in FIG. 22, and it can be seen from the pattern in FIG. 10 that they appear only in that order in the structure. Therefore, the processing is advanced by understanding the continuous expression pattern D and the continuous expression pattern A as a syntax.

式パターンDのBNF式を図24のように定義して扱う事とする。<>で囲まれた部分は終端を意味していて欠陥画素アドレス式のそれと対応している。式パターンDは欠陥画素アドレスDに続く上下左右の画素からなる欠陥画素アドレス式である。それに加えて、再帰的に式パターンDを含む構造となっている。   The BNF expression of the expression pattern D is defined and handled as shown in FIG. The portion surrounded by <> means the end and corresponds to that of the defective pixel address type. The formula pattern D is a defective pixel address formula consisting of upper, lower, left and right pixels following the defective pixel address D. In addition, the structure recursively includes the expression pattern D.

このブロックでは式の解析木を作成しながら後置き記法(逆ポーランド記法)への変換を行っていく。連続した式パターンDは図25のような解析木として展開される。再帰定義されている式パターンDは後置き記法に変換されると同時に深い解析木に展開されている事がわかる。最後に式パターンCが展開される事で解析木の終端まで到達し、その後解析木の左側から順にコード生成してゆけば連続した式パターンDの後置き法への変換が出来る。図26は式パターンA、B、C、NのBNF式である。式パターンAも式パターンDと同様に再帰定義となっている。図27は連続した式パターンAと式パターンBの解析木である。   In this block, conversion to postfix notation (reverse Polish notation) is performed while creating an analysis tree of the expression. The continuous equation pattern D is developed as an analysis tree as shown in FIG. It can be seen that the recursively defined expression pattern D is converted into a postscript notation and simultaneously expanded into a deep parse tree. Finally, the expression pattern C is expanded so that the end of the analysis tree is reached, and then code generation is performed in order from the left side of the analysis tree. FIG. 26 is a BNF expression of expression patterns A, B, C, and N. The expression pattern A is also recursively defined like the expression pattern D. FIG. 27 is an analysis tree of a continuous equation pattern A and equation pattern B.

図28のリスト4は図22の226の解析部の原理をより明確に説明するためのC言語で書かれたソースコードである。関数プログラムでは式が終わるまで式の処理を行い、関数Formulaでは「欠陥画素アドレス式」を処理している。「欠陥画素アドレス式」はPatternN,PatternA,PatternB,PatternC,PatternDのいずれかである。関数PatternNでは式パターンNに相当する処理を行っている。もし、次の「欠陥画素アドレス式」が式パターンNであれば、上画素アドレス、下画素アドレス、左画素アドレス、右画素アドレスの順にその画素の値を抽出してスタックへ積むためのプッシュ命令を生成し、次にスタックを消費して補間値を計算して欠陥画素アドレスへ書き込む命令を生成している。関数GeneratePushと関数GenerateReduceAndSaveは図22の227のコード生成部の関数である。また、関数GetNextIfPatternNは図22の225のページ境界パターンの抽出部に属する関数で指定したパターンであれば「欠陥画素アドレス式」を読み出しパラメータで指定した画素のアドレスを返す、指定したパターンでなければリターン値として定数NOTHINGを返す。   List 4 in FIG. 28 is source code written in C language for more clearly explaining the principle of the analysis unit 226 in FIG. In the function program, the expression is processed until the expression ends, and in the function Formula, the “defective pixel address expression” is processed. The “defective pixel address type” is any one of PatternN, PatternA, PatternB, PatternC, and PatternD. The function PatternN performs processing corresponding to the expression pattern N. If the next “defective pixel address expression” is an expression pattern N, a push command for extracting the values of the pixels in the order of the upper pixel address, the lower pixel address, the left pixel address, and the right pixel address and loading them on the stack Next, the stack is consumed, the interpolation value is calculated, and the instruction to write to the defective pixel address is generated. A function GeneratePush and a function GenerateReduceAndSave are functions of the code generation unit 227 in FIG. Also, if the function GetNextIfPatternN is a pattern specified by the function belonging to the page boundary pattern extraction unit 225 in FIG. 22, the “defective pixel address expression” returns the address of the pixel specified by the read parameter. A constant NOTHING is returned as a return value.

関数PatternAは次の「欠陥画素アドレス式」がPatternAでなければ何も処理を行わず、次の「欠陥画素アドレス式」がPatternAであればまず、上画素アドレスの値を抽出してスタックへ積む命令を生成する。その次の行は再びPatternAの再帰呼び出しとなっている。   The function PatternA does not perform any processing unless the next “defective pixel address expression” is PatternA, and if the next “defective pixel address expression” is PatternA, first, the value of the upper pixel address is extracted and stacked on the stack. Generate instructions. The next line is a Pattern A recursive call again.

この再帰呼び出しによって連続したPatternAに対しての解析木をこのプログラムのスタック上に構成していく事になり、結果的に図27と同様の解析木を処理したこととなる。このような構造は再帰降下パーサーとして知られており、非常に複雑度の低い構造解析部によって欠陥画素を補正するプログラムが生成される事がわかる。   By this recursive call, an analysis tree for continuous Pattern A is constructed on the stack of this program, and as a result, the same analysis tree as in FIG. 27 is processed. Such a structure is known as a recursive descent parser, and it can be seen that a program for correcting defective pixels is generated by a structural analysis unit having a very low complexity.

図22の227のコード生成部によって欠陥画素補正プログラムが生成される。ここでは、傷画素アドレスから命令される命令を導出する。図22の226の解析部からは関数GeneratePushおよび関数GenerateReduceAndSaveによってコード生成の要求を受け取るが、実際の命令はビット位置ごとに用意されたPushPixel1〜4とページ境界のPushPixel2WP,PushPixel3WPのいずれかである。また、適切な場所でページ切り替え命令を生成するのもコード生成部の役割である。図22の227のコード生成部では図22の226の解析部からの命令によって現在のページを知っており、ページが切り替わる事を検出してページ切り替え命令を挿入するのである。また図22の227のコード生成部はそれぞれの命令に割り振られたバイナリコードを知っていて直接コードへ変換し出力を行う。   A defective pixel correction program is generated by the code generation unit 227 in FIG. Here, a command to be commanded is derived from the damaged pixel address. The code generation request is received by the function GeneratePush and the function GenerateReduceAndSave from the analysis unit 226 in FIG. It is also the role of the code generation unit to generate a page switching instruction at an appropriate place. The code generation unit 227 in FIG. 22 knows the current page by the instruction from the analysis unit 226 in FIG. 22, detects that the page is switched, and inserts a page switching instruction. The code generation unit 227 in FIG. 22 knows the binary code assigned to each instruction and directly converts it into a code for output.

尚、コンパイラの構造説明では構造上重要でない為に省略したが、インタプリタで用意されているスタックの上限を超えないように命令が生成され、画像の転送と同期するためのReturn命令も挿入される。いずれも解析部によって生成される命令である。   Although omitted in the explanation of the structure of the compiler because it is not important in terms of structure, instructions are generated so as not to exceed the upper limit of the stack prepared by the interpreter, and a Return instruction for synchronizing with image transfer is also inserted. . Both are instructions generated by the analysis unit.

(その他の実施例)
第一の実施例では、ウインドウを介在してアクセスするハードウェアのページ単位を切り替えていたが、DRAMのページ単位で行ってもオーバーヘッド削減の効果は大きい。
(Other examples)
In the first embodiment, the hardware page unit to be accessed through the window is switched. However, the overhead reduction effect is great even if it is performed in the DRAM page unit.

また、第一の実施例ではインタプリタのコンピュータプログラムによってコンピュータ言語を解釈実行していたが、コンピュータ言語を直接解釈実行可能なプロセッサによって実行してもよい。   In the first embodiment, the computer language is interpreted and executed by the computer program of the interpreter. However, the computer language may be executed by a processor that can directly interpret and execute the computer language.

第一の実施例では、構造のシンプルさを説明するために再帰降下パーサーを用いて設計していたが、シフトレディユースパーサーやその他のパーサーで構造解析を行ってもよい。   In the first embodiment, a recursive descent parser is used to explain the simplicity of the structure, but structural analysis may be performed using a shift ready use parser or other parsers.

第一の実施例では12ビットの画素を16ビット幅のメモリーへ格納していたが、それ以外のビット幅でも同様の効果がある。   In the first embodiment, 12-bit pixels are stored in a 16-bit memory, but the same effect can be obtained with other bit widths.

第一の実施例では撮像素子としてエリアセンサーを想定していたが、ラインセンサーを用いたイメージスキャナやフィルムスキャナでも同様の効果がある。   In the first embodiment, an area sensor is assumed as the image sensor, but an image scanner or a film scanner using a line sensor has the same effect.

以上述べたように、上述の実施例によれば、画像の座標上のアドレスからメモリのアドレスと格納されているビット位置を得る処理を予め行い、その結果をビット詰めされた画像メモリから任意の画素を抽出する為の命令を持つ命令体系により構成されたコンピュータ言語としてカメラへ搭載する事で、カメラの中でアドレス計算をする必要がなくなり、高速な欠陥補正プログラムを作成する事が可能となる。これによって従来支配的だったアドレスとビット位置の算出時間を無くす事が出来る。例えば1つの欠陥画素に対して10回の掛け算と5回の割り算を削減できる。   As described above, according to the above-described embodiment, the process of obtaining the memory address and the stored bit position from the address on the coordinate of the image is performed in advance, and the result is obtained from the bit-padded image memory. By installing it in the camera as a computer language composed of an instruction system with instructions for extracting pixels, it is not necessary to calculate addresses in the camera, and a high-speed defect correction program can be created. . As a result, the calculation time of the address and bit position, which has been dominant in the past, can be eliminated. For example, 10 multiplications and 5 divisions can be reduced for one defective pixel.

またビット詰めされた画像メモリから任意の画素を抽出し、スタックへ積む命令を持ち、スタック上のデータを消費して演算を行い、演算結果をビット詰めされた画像メモリの任意の画素位置へ書き込む命令を持つコンピュータ言語とする事で、補正に利用する画素情報の収集と補正画素値を演算するアルゴリズムを分離できる為、プログラムを柔軟に変更する事が可能となる。例えば、上下左右の画素の平均値を欠陥画素位置へ書き込む命令を、上下と左右を組として差の少ない組の平均値のみを用いるようアルゴリズムを変更する場合、上下左右の画素を集める命令に変更の影響が及ばないといった効果がある。   Also, it has an instruction to extract an arbitrary pixel from the bit-padded image memory, put it on the stack, consume the data on the stack, perform an operation, and write the operation result to an arbitrary pixel position in the bit-padded image memory By using a computer language having instructions, it is possible to separate the collection of pixel information used for correction and the algorithm for calculating the corrected pixel value, so that the program can be flexibly changed. For example, change the command to write the average value of the upper, lower, left, and right pixels to the defective pixel position to the command that collects the upper, lower, left, and right pixels when the algorithm is changed to use only the average value of the set that has a small difference between the top, bottom, left, and right. There is an effect that the influence of.

またバンク切り替え方式のバンク切り替えや、DRAMのページなどの単位で画像メモリを論理的にページ単位で扱い、ページを切り替える命令を有するコンピュータ言語とする事で画素のアドレスをページの先頭からの相対アドレスとして表現する事が可能となるので、メモリのページを越えたアクセス時のペナルティを最小限にしつつ、命令の語調を短くする事が可能となる。例えば、64Kバイトを1ページとして扱えば16ビットでページ内をアクセスする事が可能なのでオペランドを2バイトで表現する事が可能となる。   In addition, the image memory is logically handled in units of pages, such as bank switching in the bank switching method and DRAM pages, and a computer language having an instruction to switch pages makes the pixel address a relative address from the top of the page. Therefore, it is possible to shorten the tone of the instruction while minimizing the penalty at the time of access beyond the memory page. For example, if 64K bytes are handled as one page, the page can be accessed with 16 bits, so that the operand can be expressed with 2 bytes.

また画像座標上の欠陥画素の位置をあらかじめ計測し、そのデータをソースプログラムとして画像上の座標を含む第一の言語体系により記述されたソースプログラムから上記コンピュータ言語への変換を行うコンパイラを使用して、このようなプログラム作成の処理を行う。そして、画像メモリのページ切り替え回数が最小となるように命令順序の最適化を行う事を特徴とした上記コンピュータ言語を生成するコンパイラを使用する事によってDRAMのページ外へのアクセスやバンクメモリーのページ切り替え等の処理を削減する事ができ、メモリのアクセスを高速化する事が可能となる。   In addition, the position of the defective pixel on the image coordinates is measured in advance, and a compiler that converts the data from the source program described in the first language system including the coordinates on the image into the computer language is used as the source program. Thus, such a program creation process is performed. Then, by using the compiler that generates the computer language, the instruction order is optimized so that the number of page switching times of the image memory is minimized. Processing such as switching can be reduced, and memory access can be speeded up.

また上記コンパイラによって生成されたビット詰された画像メモリ上の欠陥画素を補正するコンピュータ言語の実行コードを備え、コンピュータ言語を解釈実行するインタプリタまたはハードウェアなどのコンピュータ言語実行手段を備え、画像を光電変換する撮像手段を備え、撮像手段の出力をデジタル信号へ変換するデジタル化手段を備え、上記デジタル化された信号をビット詰めして画像メモリへ転送するビット詰めメモリ格納手段を備え、上記撮像手段からの出力をデジタル化手段でデジタル化しビット詰めメモリ格納手段によって画像メモリへビット詰めした画像をコンピュータ言語の実行コードを上記コンピュータ言語実行手段により実行する事によりビット詰めされた画像メモリーに対して上記撮像手段から得られた画像の欠陥画素を補正するという構成とする事により、メモリへの記憶効率を高める事が出来、且欠陥画素の補正を高速に行う事のできる撮像装置を構成する事が可能となる。   It also includes computer language execution code for correcting defective pixels on the bit-clogged image memory generated by the compiler, and computer language execution means such as an interpreter or hardware for interpreting and executing the computer language. Imaging means for converting, digitizing means for converting the output of the imaging means into a digital signal, bit-padded memory storing means for bit-packing the digitized signal and transferring it to an image memory, and the imaging means An image obtained by digitizing the output from the digitizing means and bit-packing the image memory by the bit-packing memory storage means is executed on the image memory bit-padded by executing the computer language execution code by the computer language execution means. Missing images obtained from imaging means By the structure of correcting the pixel, to enhance storage efficiency of the memory is possible, it is possible to configure the imaging device that can correct the 且 defective pixels at high speed.

すなわち命令セットのコンピュータ言語で画像メモリのページ切り替えを最小限に抑えて欠陥画素補正を行うプログラムを自動生成でき、画像をビット詰めして格納する事で記憶効率を高める事ができ、さらに高速に欠陥画素を補正する事のできる撮像装置を構成できるようになる。   In other words, it is possible to automatically generate a program that corrects defective pixels by minimizing page switching of the image memory in the computer language of the instruction set, and it is possible to increase the storage efficiency by storing the image by bit-packing it, and at higher speed An imaging apparatus capable of correcting defective pixels can be configured.

またコンピュータ言語で記述された複数の異なるプログラムコードを備え、温度や感度などの条件によって上記複数の異なるプログラムコードの中から1つを選択する手段を備え、温度や感度などの条件によって実行させるコンピュータ言語のプログラムを決定し実行するように構成する事により、ISO感度や温度といった条件により変化する欠陥画素の数、質に適応可能な欠陥画素補正を行う事が出来るようになる。   A computer comprising a plurality of different program codes written in a computer language, comprising means for selecting one of the plurality of different program codes according to conditions such as temperature and sensitivity, and executed according to conditions such as temperature and sensitivity By configuring the language program to be determined and executed, it is possible to perform defective pixel correction that can be adapted to the number and quality of defective pixels that change depending on conditions such as ISO sensitivity and temperature.

1枚の画像を複数の分割処理単位へ分割し、撮像素子から分割処理単位ごとに転送終了の通知を可能とする分割処理単位転送終了通知手段を有し、その分割単処理単位にあわせて上記請求項1のコンピュータ言語のプログラムが、上記分割処理単位転送終了通知手段からの通知を待つように構成する事で、1枚の画像すべての転送を終了するよりも前に欠陥画素の補正を開始する事を可能とする事で、撮像素子からの画像転送開始から画像の欠陥補正の終了までの時間を大幅に短縮する事が可能となる。   There is a division processing unit transfer end notification means that divides one image into a plurality of division processing units and enables transfer end notification from the image sensor for each division processing unit. The computer language program according to claim 1 is configured to wait for notification from the division processing unit transfer end notification means, so that correction of defective pixels is started before transfer of all one image is ended. This makes it possible to significantly reduce the time from the start of image transfer from the image sensor to the end of image defect correction.

すなわち撮像素子からの画像の転送が終了するよりも前に欠陥画素の補正を開始する事が可能となり、連写性能やレスポンス等の撮像装置の性能を高める事が可能となる。   That is, it is possible to start correction of defective pixels before the transfer of the image from the image sensor is completed, and it is possible to improve the performance of the imaging device such as continuous shooting performance and response.

第一の実施例の構成を示すブロック図Block diagram showing the configuration of the first embodiment 10ビットの画素を16ビット幅のメモリへビット詰めした状態を示す図The figure which shows the state which packed the bit of 10 bits into the memory of 16 bits width 9ビットの画素を16ビット幅のメモリへビット詰めした状態を示す図A diagram showing a state in which 9-bit pixels are packed into a 16-bit width memory 第一の実施例のビット詰め状態を示す図The figure which shows the bit padding state of 1st Example 第一の実施例のコンピュータ言語命令表を示す図The figure which shows the computer language instruction table of a 1st Example レジスタの役割表を示す図Figure showing the register role table 第一のインタプリタ心臓部分の実装例を示す図Diagram showing an implementation example of the first interpreter heart リスト1のプログラムを実行後のスタックの状態を説明する図Diagram explaining the state of the stack after executing the program in Listing 1 基本のプログラムのアッセンブラ表記例のリスト1を示す図Diagram showing List 1 of basic program assembler notation ページ境界を越える欠陥画素補正の分類を説明する図Diagram explaining classification of defective pixel correction across page boundaries ページ切り替えが少ないプログラムのアッセンブラ表記例のリスト2を示す図The figure which shows list 2 of the assembler notation example of the program with few page switching リスト2の0006番地実行後のスタックの状態を示す図The figure which shows the state of the stack after execution of address 0006 of list 2 リスト2の0012番地実行後のスタックの状態を示す図The figure which shows the state of the stack after execution of address 0012 of list 2 リスト2の0015番地実行後のスタックの状態を示す図The figure which shows the state of the stack after execution of address 0015 of list 2 リスト2の001D番地実行後のスタックの状態を示す図The figure which shows the state of the stack after execution of address 001D of list 2 リスト3の0006番地実行後のスタックの状態を示す図The figure which shows the state of the stack after execution of address 0006 of list 3 スワップ命令を含むプログラムのアッセンブラ表記例のリスト3を示す図The figure which shows list 3 of the assembler notation example of the program which includes the swap instruction リスト3のSWAP命令実行前後のスタックの状態を示す図The figure which shows the state of the stack before and after execution of the SWAP instruction of list 3 ページをまたがる画素の状態を示す図Diagram showing the state of pixels across pages ページ境界アクセス用命令一覧を示す図Figure showing page boundary access instruction list コンパイラの運用を説明する図Diagram explaining the operation of the compiler コンパイラのブロックダイアグラムCompiler block diagram 欠陥画素アドレス式トップレベルBNF式を示す図The figure which shows a defective pixel address type top level BNF type 式パターンDのBNF式を示す図The figure which shows the BNF type | formula of Formula pattern D 連続したパターンDの解析木を示す図The figure which shows the analysis tree of the continuous pattern D 式パターンA、B、C、NのBNF式を示す図The figure which shows the BNF type | formula of formula pattern A, B, C, N 連続したパターンAの解析木を示す図The figure which shows the analysis tree of continuous pattern A 図22の解析部の原理を説明するためのプログラムのリスト4を示す図The figure which shows the list 4 of the program for demonstrating the principle of the analysis part of FIG. 欠陥画素位置座標の表し方を説明する図The figure explaining how to express a defective pixel position coordinate 欠陥画素の補間方法を説明する図The figure explaining the interpolation method of a defective pixel

符号の説明Explanation of symbols

1 CPU
2 主記憶用メモリ
3 ROM
4 画像処理用プロセッサ
6 画像メモリ
1 CPU
2 Main memory 3 ROM
4 Image processor 6 Image memory

Claims (4)

撮像手段によって得られた画像データ中に含まれる欠陥画素の補正を行う画像処理装置において、
前記撮像手段より得られた前記画像データをデジタル画像データに変換し画像メモリにビット詰めして転送する手段と、
前記画像メモリより補正すべき欠陥画素の位置データに基づいてその周辺の複数のデジタル画像データを読み出して補間演算を行うことにより欠陥画素補正を行い、補正された画像データを前記画像メモリに書き込む補正処理手段とを備え、
前記画像メモリは論理的にページ単位で扱われ、前記補正処理手段は前記欠陥画素の補間演算に用いる周辺のデジタル画像データを読み出す際、前記画像メモリのページ境界をまたいで周辺のデジタル画像データが存在する場合には、前記ページの切り替え回数が最小となるように読み出し順序を制御することを特徴とする画像処理装置。
In an image processing apparatus that corrects defective pixels included in image data obtained by an imaging unit,
Means for converting the image data obtained from the imaging means into digital image data and bit-packing it into an image memory;
Based on the position data of the defective pixel to be corrected from the image memory, a plurality of digital image data around the defective pixel is read out, and the defective pixel is corrected by performing an interpolation operation, and the corrected image data is written to the image memory. Processing means,
The image memory is logically handled in units of pages, and when the correction processing unit reads out the peripheral digital image data used for the interpolation operation of the defective pixel, the peripheral digital image data crosses the page boundary of the image memory. If present , the image processing apparatus controls the reading order so that the number of page switching is minimized .
請求項1において、1枚の画像を複数の分割処理単位へ分割し、前記撮像手段から分割処理単位ごとに前記画像メモリへの転送終了の通知を可能とする分割処理単位転送終了通知手段を備え、その分割単処理単位にあわせて前記分割処理単位転送終了通知手段からの通知に応じて、前記補正処理手段による欠陥画素補正動作を開始するように構成されていることを特徴とする画像処理装置。 2. A division processing unit transfer end notification unit that divides one image into a plurality of division processing units and enables transfer end notification from the imaging unit to the image memory for each division processing unit. An image processing apparatus configured to start a defective pixel correction operation by the correction processing unit in response to a notification from the divided processing unit transfer end notification unit in accordance with the divided single processing unit . 撮像手段によって得られた画像データ中に含まれる欠陥画素の補正を行うための画像処理方法であって、
前記撮像手段より得られた前記画像データをデジタル画像データに変換し画像メモリにビット詰めして転送する転送工程と、
前記画像メモリより補正すべき欠陥画素の位置データに基づいてその周辺の複数のデジタル画像データを読み出して補間演算を行うことにより欠陥画素補正を行い、補正された画像データを前記画像メモリに書き込む補正処理工程とを備え、
前記画像メモリは論理的にページ単位で扱われ、前記補正処理工程は前記欠陥画素の補間演算に用いる周辺のデジタル画像データを読み出す際、前記画像メモリのページ境界をまたいで周辺のデジタル画像データが存在する場合には、前記ページの切り替え回数が最小となるように読み出し順序を制御することを特徴とする画像処理方法。
An image processing method for correcting defective pixels included in image data obtained by an imaging means,
A transfer step of converting the image data obtained from the imaging means into digital image data and filling the image memory with bits;
Based on the position data of the defective pixel to be corrected from the image memory, a plurality of digital image data around the defective pixel is read out, and the defective pixel is corrected by performing an interpolation operation, and the corrected image data is written to the image memory. Processing steps,
The image memory is logically handled in units of pages, and when the peripheral digital image data used for the interpolation calculation of the defective pixel is read out, the peripheral digital image data straddling the page boundary of the image memory is read. If present , the image processing method is characterized in that the reading order is controlled so that the number of page switching times is minimized .
請求項3において、1枚の画像を複数の分割処理単位へ分割し、前記撮像手段から分割処理単位ごとに前記画像メモリへの転送終了の通知を可能とする分割処理単位転送終了通知工程を備え、その分割単処理単位にあわせて前記分割処理単位転送終了通知工程からの通知に応じて、前記補正処理工程による欠陥画素補正動作を開始することを特徴とする画像処理方法。 4. The division processing unit transfer end notification step according to claim 3, wherein one image is divided into a plurality of division processing units, and transfer completion notification to the image memory is possible for each division processing unit from the imaging unit. A defective pixel correction operation in the correction processing step is started in response to a notification from the divided processing unit transfer end notification step in accordance with the divided single processing unit .
JP2004245093A 2004-08-25 2004-08-25 Image processing apparatus and image processing method Expired - Fee Related JP4560353B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004245093A JP4560353B2 (en) 2004-08-25 2004-08-25 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004245093A JP4560353B2 (en) 2004-08-25 2004-08-25 Image processing apparatus and image processing method

Publications (2)

Publication Number Publication Date
JP2006067069A JP2006067069A (en) 2006-03-09
JP4560353B2 true JP4560353B2 (en) 2010-10-13

Family

ID=36113179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004245093A Expired - Fee Related JP4560353B2 (en) 2004-08-25 2004-08-25 Image processing apparatus and image processing method

Country Status (1)

Country Link
JP (1) JP4560353B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07131748A (en) * 1993-11-08 1995-05-19 Konica Corp Electronic still video camera
JPH1042244A (en) * 1996-07-19 1998-02-13 Canon Inc Picture processor
JP2000224487A (en) * 1999-02-02 2000-08-11 Fuji Photo Film Co Ltd Image pickup device and image pickup method
JP2000285220A (en) * 1999-03-31 2000-10-13 Canon Inc Method and device for processing picture, and picture data format used therefor
JP2001251636A (en) * 2000-03-07 2001-09-14 Fuji Photo Film Co Ltd Solid-state image pickup device and method for detecting pixel defect

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07131748A (en) * 1993-11-08 1995-05-19 Konica Corp Electronic still video camera
JPH1042244A (en) * 1996-07-19 1998-02-13 Canon Inc Picture processor
JP2000224487A (en) * 1999-02-02 2000-08-11 Fuji Photo Film Co Ltd Image pickup device and image pickup method
JP2000285220A (en) * 1999-03-31 2000-10-13 Canon Inc Method and device for processing picture, and picture data format used therefor
JP2001251636A (en) * 2000-03-07 2001-09-14 Fuji Photo Film Co Ltd Solid-state image pickup device and method for detecting pixel defect

Also Published As

Publication number Publication date
JP2006067069A (en) 2006-03-09

Similar Documents

Publication Publication Date Title
WO2003003197A2 (en) System-on-a-chip controller
JP2008140046A (en) Image processor, image processing program
KR20010072958A (en) Improving the portability of digital images
JP4886043B2 (en) High-speed filter type YUV to RGB conversion
JP3995868B2 (en) Error diffusion arithmetic unit
JP4560353B2 (en) Image processing apparatus and image processing method
JP2008259178A (en) Color conversion apparatus, filter processing apparatus and color conversion method
US7254284B2 (en) Image processing apparatus and image processing method for processing digitized image data
JP4164257B2 (en) Image processing apparatus, image processing method, program, and storage medium
Maatta et al. Generic software framework for a line-buffer-based image processing pipeline
US20100110213A1 (en) Image processing processor, image processing method, and imaging apparatus
JPS62226231A (en) Processor
US10089561B2 (en) Generating a raster image region by rendering in parallel plural regions of smaller height and segmenting the generated raster image region into plural regions of smaller width
US6963420B1 (en) Image processing apparatus
JP4451433B2 (en) Parallel processor
JP2009053829A (en) Information processor and information processing program
JP2019082871A (en) Display control program, display control method, and display control device
JP4735408B2 (en) Image processing apparatus and program thereof
US8395630B2 (en) Format conversion apparatus from band interleave format to band separate format
JP3595269B2 (en) Instruction sequence optimization device, assembler device, linker device, disassembler device, compiler device, and recording medium
US20110211204A1 (en) Image processing apparatus
JP2005338929A (en) Semiconductor device
JP5092270B2 (en) Image processing apparatus and method
JP5039687B2 (en) Image processing device
JP2004272415A (en) Optical reading device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091016

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100201

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100630

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100726

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees