JP7612412B2 - IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD AND PROGRAM FOR IMAGE PROCESSING APPARATUS - Google Patents
IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD AND PROGRAM FOR IMAGE PROCESSING APPARATUS Download PDFInfo
- Publication number
- JP7612412B2 JP7612412B2 JP2020218427A JP2020218427A JP7612412B2 JP 7612412 B2 JP7612412 B2 JP 7612412B2 JP 2020218427 A JP2020218427 A JP 2020218427A JP 2020218427 A JP2020218427 A JP 2020218427A JP 7612412 B2 JP7612412 B2 JP 7612412B2
- Authority
- JP
- Japan
- Prior art keywords
- pseudo
- image processing
- seed
- seed value
- random number
- 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
Links
Images
Landscapes
- Editing Of Facsimile Originals (AREA)
- Studio Devices (AREA)
Description
本発明は、画像処理装置、画像処理装置の画像処理方法およびプログラムに関する。 The present invention relates to an image processing device, an image processing method for an image processing device, and a program.
コンピュータや論理回路で画像処理を行うとき、乱数が必要となることがある。乱数には、大きく分けて2種類あり、物理的な現象の観測等により生成する真の乱数と、所定のアルゴリズムを使ってランダムに見える値を出力する疑似乱数がある。 When performing image processing using computers or logic circuits, random numbers are sometimes required. There are two main types of random numbers: true random numbers, which are generated by observing physical phenomena, and pseudo-random numbers, which use a specific algorithm to output values that appear random.
疑似乱数は、真の乱数ではないが、アルゴリズムが決まっているので、乱数の品質を確認することは、真の乱数よりも容易である。例えば、統計的な乱数検定方法、例えばNISTのSP800-22で乱数の品質を確認することができる。そのため、品質が用途に合致していることを確認できれば、真の乱数の代わりに疑似乱数を使用しても、問題ないと言える。 Although pseudorandom numbers are not truly random, because the algorithm is fixed, it is easier to check the quality of the random numbers than with true random numbers. For example, the quality of random numbers can be checked using statistical random number testing methods, such as NIST SP800-22. Therefore, as long as you can confirm that the quality matches the application, there is no problem in using pseudorandom numbers instead of true random numbers.
また、疑似乱数は、再現性があるというメリットがある。再現性とは、同じ疑似乱数列を再度生成可能という性質である。そのため、同じ乱数列を複数回使用する用途がある場合、真の乱数の場合は、乱数列をすべて保存しておく必要があるのに対し、疑似乱数の場合は、再生成するだけでよい。 Pseudorandom numbers also have the advantage of being reproducible. Reproducibility is the property of being able to regenerate the same pseudorandom number sequence. Therefore, if you have an application that requires you to use the same random number sequence multiple times, with true random numbers you would need to store the entire sequence, whereas with pseudorandom numbers you would only need to regenerate it.
疑似乱数は、大きく分けて2種類あり、暗号に使用できる疑似乱数と、それ以外の一般的な疑似乱数がある。暗号に使用できる疑似乱数は、乱数の品質が高いが、通常、乱数の生成が低速になる。画像処理では、あまり高品質な乱数は必要ないので、暗号目的の疑似乱数は、通常、画像処理では使用せず、一般的で簡易な疑似乱数が画像処理で使用される。 There are two main types of pseudo-random numbers: pseudo-random numbers that can be used in encryption, and general pseudo-random numbers that are not used for other purposes. Pseudo-random numbers that can be used in encryption have high quality random numbers, but they are usually generated slowly. Since high quality random numbers are not necessary in image processing, pseudo-random numbers for encryption purposes are not usually used in image processing, and general, simple pseudo-random numbers are used instead.
簡易な疑似乱数アルゴリズムの一つに、線形帰還シフトレジスタがある。線形帰還シフトレジスタは、そのままでは、暗号に使用できるほどの品質を持たないが、画像処理などの一般的な乱数の利用であれば、単体でも使用することができる。疑似乱数アルゴリズムの他の例としては、Xorshiftがある(例えば、非特許文献1参照)。 One simple pseudorandom number algorithm is the linear feedback shift register. Although the linear feedback shift register does not have the quality required for encryption as is, it can be used alone for general random number applications such as image processing. Another example of a pseudorandom number algorithm is Xorshift (see, for example, Non-Patent Document 1).
特許文献1には、例えば、画像の拡大処理を行うために、入力画像に画素の追加を行い、疑似乱数を用いて追加箇所をバラバラにすることで、画素追加による画像パターンの変化地点を目立たないようにする方法が記載されている。
For example,
特許文献2には、複数の疑似乱数発生回路に別々のシード値(初期値)を設定することで、複数の疑似乱数発生回路で同じ乱数が生成されることを回避する方法が記載されている。
特許文献3には、複数の疑似乱数発生回路に同じ初期値を設定するが、疑似乱数列から疑似乱数を取り出す位置をそれぞれの疑似乱数発生回路で変えることで、異なる疑似乱数を生成する方法が記載されている。
特許文献4および特許文献5には、線形帰還シフトレジスタの位相を任意に進めた場合のシフトレジスタの値を算出する方法が記載されている。
Patent Document 4 and
しかし、特許文献3の方法では、画像を複数のブロックに分割し、各ブロックについて疑似乱数を生成する場合には、疑似乱数列の疑似乱数を多数生成する必要がある。また、特許文献4および特許文献5には、位相の進め方が記載されているが、画像を複数のブロックに分割した画像処理に必要な回路構成、例えば複数のシード値の持ち方やシード値生成のタイミングを開示していない。
However, in the method of
本発明の目的は、1個のシード値を基に、画像を分割した複数のブロックのそれぞれの画像処理のための疑似乱数列が衝突しないような複数のシード値を短時間で生成することができるようにすることである。 The objective of the present invention is to make it possible to generate multiple seed values in a short time based on a single seed value, so that the pseudo-random number sequences for image processing of each of the multiple blocks into which an image is divided do not collide.
本発明の画像処理装置は、1個のシード値を基に、画像を分割した複数のブロックのための複数のシード値を生成するシード値生成手段と、前記複数のブロックのための複数のシード値を基に、前記複数のブロックの各々ごとの疑似乱数列を生成する疑似乱数生成手段と、前記複数のブロックの各々ごとの疑似乱数列を用いて、前記画像を分割した複数のブロックをそれぞれ画像処理する画像処理手段とを有し、前記シード値生成手段は、前記疑似乱数生成手段が前記1個のシード値を基に生成する疑似乱数列のうちの所定数ずつスキップした複数の疑似乱数を前記複数のシード値として生成し、前記複数のシード値のうちの1個のシード値の一部のビットを他のビットに変更することにより、前記所定数を変更する。 The image processing device of the present invention has a seed value generation means for generating a plurality of seed values for a plurality of blocks into which an image is divided based on one seed value, a pseudo-random number generation means for generating a pseudo-random number sequence for each of the plurality of blocks based on the plurality of seed values for the plurality of blocks, and an image processing means for image processing each of the plurality of blocks into which the image is divided using the pseudo-random number sequence for each of the plurality of blocks, wherein the seed value generation means generates a plurality of pseudo-random numbers as the plurality of seed values, skipping a predetermined number from the pseudo-random number sequence generated by the pseudo-random number generation means based on the one seed value, and changes the predetermined number by changing some bits of one of the plurality of seed values to other bits .
本発明によれば、1個のシード値を基に、画像を分割した複数のブロックのそれぞれの画像処理のための疑似乱数列が衝突しないような複数のシード値を短時間で生成することができる。 According to the present invention, multiple seed values can be generated in a short time based on one seed value, so that the pseudo-random number sequences for image processing of each of the multiple blocks into which an image is divided do not collide.
図11は、疑似乱数を生成する線形帰還シフトレジスタの構成例を示す回路図である。シフトレジスタ1101は、それぞれのレジスタが1ビットを保持し、全体で5ビットを保持することができ、左から1ビットを入力すると、保持しているビットを1つシフトする。排他的論理和演算器1102は、シフトレジスタ1101のいくつかのビットを入力し、入力ビットの排他的論理和の結果を1ビット出力する。シフトレジスタ1101が1回シフトする度に、疑似乱数が1ビット出力される。
Figure 11 is a circuit diagram showing an example of the configuration of a linear feedback shift register that generates pseudorandom numbers. Each register of the
なお、線形帰還シフトレジスタが生成する疑似乱数の周期は、最大になるように構成されている。疑似乱数の周期は、シフトレジスタ1101が保持できるビット数と、排他的論理和演算器1102に入力するビットに依存している。シフトレジスタ1101のビット数をNとすると、シフトレジスタ1101が表せるビット状態の個数は、2N個である。ただし、シフトレジスタ1101のビットのすべてが0の場合は、シフトレジスタ1101のビットが常に0になってしまうので、その1パターンを除くと、シフトレジスタ1101が表せるビット状態の個数は、2N-1個になる。よって、2N-1が疑似乱数の最大の周期である。排他的論理和演算器1102への入力は、シフトレジスタ1101が表すビット状態の周期が2N-1になるように構成する。これにより、疑似乱数の周期も2N-1になる。
The linear feedback shift register is configured to generate a pseudorandom number with a maximum period. The period of the pseudorandom number depends on the number of bits that the
疑似乱数は、画像処理に使用することができる。画像データに対して行う拡大縮小処理やハーフトーン処理により発生するモアレや画像パターンの変化を目立ちにくくするために、画像処理に疑似乱数を使用することができる。例えば、画像の拡大処理を行うために、入力画像に画素の追加を行う。通常、画素を追加すると、追加を行った位置で、画像パターンが変化する。そのため、画素の追加地点が一律固定だと、追加を行った位置で起こる画像パターンの変化地点が一か所に固まって目立ってしまう。そのため、疑似乱数を用いて追加箇所をバラバラにすることで、画素追加による画像パターンの変化地点を目立たなくすることができる。 Pseudo-random numbers can be used in image processing. Pseudo-random numbers can be used in image processing to make moire and changes in image patterns that occur when enlarging, reducing, or halftoning image data less noticeable. For example, to enlarge an image, pixels are added to the input image. Normally, when pixels are added, the image pattern changes at the location where the addition is made. Therefore, if the pixel addition points are fixed, the points of change in the image pattern that occur at the locations where the pixels were added will be concentrated in one place and stand out. Therefore, by using pseudo-random numbers to spread out the addition points, the points of change in the image pattern due to the addition of pixels can be made less noticeable.
図12は、入力画像を複数のブロックに分割する例を示す図である。ブロック毎に画像処理を行うことで、複数のブロックを並列に処理することや、ブロック毎の拡大率を変化させたりすることができる。ただし、ブロック毎に画像処理をするためには、疑似乱数もブロック毎に生成する必要がある。 Figure 12 shows an example of dividing an input image into multiple blocks. By performing image processing for each block, it is possible to process multiple blocks in parallel and change the magnification ratio for each block. However, in order to perform image processing for each block, pseudo-random numbers also need to be generated for each block.
図13は、図12のブロック毎に同じ疑似乱数を使用し、画素を挿入する場合の画素挿入位置の例を示す図である。ブロック毎に同じシード値(初期値)を使用し、それぞれ同じ疑似乱数列を生成する場合、すべてのブロックで同じ位置に画素が挿入されてしまう。すべてのブロックで同じ位置に画素を挿入しているため、画像パターンの変化が周期的に起こり、模様として認識されてしまう可能性がある。 Figure 13 shows an example of pixel insertion positions when using the same pseudo-random numbers for each block in Figure 12 to insert pixels. If the same seed value (initial value) is used for each block and the same pseudo-random number sequence is generated for each, pixels will be inserted at the same positions in all blocks. Because pixels are inserted at the same positions in all blocks, changes in the image pattern occur periodically, which may be recognized as a pattern.
そのため、ブロック毎に使用する疑似乱数列は、別々の方がよい。複数の疑似乱数発生回路に別々のシード値(初期値)を設定することで、複数の疑似乱数発生回路で同じ乱数が生成されることを回避できる。しかし、ブロック毎に別のシード値を設定しても、疑似乱数列は、周期が有限なので、複数のブロックの疑似乱数列が部分的に衝突する可能性がある。 For this reason, it is better to use a different pseudo-random number sequence for each block. By setting different seed values (initial values) for multiple pseudo-random number generating circuits, it is possible to prevent the same random numbers from being generated by multiple pseudo-random number generating circuits. However, even if a different seed value is set for each block, because pseudo-random number sequences have a finite period, there is a possibility that the pseudo-random number sequences of multiple blocks may partially collide.
図14は、複数のブロックの疑似乱数列が部分的に衝突した場合の、画素挿入位置の例を示す図である。複数のブロックの疑似乱数列が一部衝突しているため、複数のブロックの画素の挿入位置が一部重複している。そのため、複数のブロックの重複している箇所で、同一パターンが発生してしまっている。これにより、画像パターンの変化が周期的に起こり、模様として認識されてしまう可能性がある。 Figure 14 shows an example of pixel insertion positions when the pseudo-random number sequences of multiple blocks partially collide. Because the pseudo-random number sequences of multiple blocks partially collide, the pixel insertion positions of the multiple blocks partially overlap. As a result, the same pattern occurs where multiple blocks overlap. This causes the image pattern to change periodically, which may be recognized as a pattern.
上記のような疑似乱数列の一部衝突を確実に回避するために、例えば、複数の疑似乱数発生回路に同じ初期値を設定するが、疑似乱数列から疑似乱数を取り出す位置をそれぞれの疑似乱数発生回路で変えることで、疑似乱数の衝突を回避することができる。 To reliably avoid partial collisions of pseudo-random number sequences like the one above, for example, the same initial value is set for multiple pseudo-random number generating circuits, but the position from which the pseudo-random numbers are extracted from the pseudo-random number sequence is changed for each pseudo-random number generating circuit, thereby avoiding collisions of pseudo-random numbers.
しかし、ブロック数が多い場合、疑似乱数の生成に必要な計算量が増えるという課題がある。例えば、ブロックが1000個ある場合、疑似乱数列から1つの疑似乱数を取り出すために、疑似乱数列の疑似乱数を1000個生成する必要がある。画像処理では、疑似乱数が画素毎に必要な場合があるので、ブロック間の疑似乱数の衝突を防ぎながらも、少ない計算量で疑似乱数を生成する必要がある。 However, when there are a large number of blocks, there is an issue that the amount of calculations required to generate pseudo-random numbers increases. For example, if there are 1,000 blocks, it is necessary to generate 1,000 pseudo-random numbers of the pseudo-random number sequence to extract one pseudo-random number from the pseudo-random number sequence. In image processing, a pseudo-random number may be required for each pixel, so it is necessary to generate pseudo-random numbers with a small amount of calculations while preventing collisions of pseudo-random numbers between blocks.
他の衝突回避方法としては、衝突しないシード値を前もって複数保持しておいて、画像処理の開始前に保持しておいたシード値を使って疑似乱数列を生成する方法が考えられる。しかし、衝突しないシード値をあらかじめ生成しておき、外部ですべて保持しておくとすると、外部でシード値を保持するための回路の増加や、外部に保持しているシード値を画像処理回路に書き込むのに時間がかかってしまう。例えば、シードが1000個あるとすると、外部の保持回路も1000個必要であり、また、画像処理回路にシード値を書込む時間が1個につき100サイクルかかるとすると、全部のシード値を書き込むのに10万サイクルかかってしまう。 Another method for avoiding collisions is to store multiple seed values that will not collide in advance, and generate a pseudo-random number sequence using the stored seed values before the start of image processing. However, if non-colliding seed values are generated in advance and all are stored externally, it will require an increase in the number of circuits to store the seed values externally, and it will take time to write the seed values stored externally to the image processing circuit. For example, if there are 1,000 seeds, 1,000 external storage circuits will be required, and if it takes 100 cycles per seed value to write to the image processing circuit, it will take 100,000 cycles to write all the seed values.
上記の課題を解決するため、複数のブロックのそれぞれへのシード値の設定を外部から行う必要がなく、各ブロックの画像処理中の疑似乱数発生を短時間で実施することができる実施形態を、以下、説明する。 To solve the above problem, an embodiment is described below that can generate pseudo-random numbers in a short time during image processing for each block without the need to set seed values for each of the multiple blocks from the outside.
(第1の実施形態)
図1は、第1の実施形態に係る画像処理装置100の構成例を示す図である。画像処理装置100は、画像処理回路101と、疑似乱数発生部102と、複数のシード値保持部103と、シード値設定部104と、シード値生成部105と、疑似乱数列スキップ部106とを有する。以下、画像処理装置100の画像処理方法を説明する。
(First embodiment)
1 is a diagram showing an example of the configuration of an
画像処理回路101は、例えば画像の拡大縮小処理のような、疑似乱数を必要とする画像処理を行う。画像処理回路101は、入力画像を入力し、入力画像を複数のブロックに分割し、各ブロックに対して画像処理を施して、出力画像を出力する。
The
疑似乱数発生部102は、線形帰還シフトレジスタを有し、疑似乱数列を生成する。複数のシード値保持部103は、それぞれ、入力画像の複数のブロックの画像処理に必要な疑似乱数列のシード値を保持する。例えば、画像処理回路101が最大1024個のブロック分割を行う場合、シード値保持部103は、1024個で構成される。
The pseudo-random
シード値設定部104は、複数のシード値保持部103のうちのいずれか1つに、シード値を設定する。このシード値は、複数のブロックのうちの1つのブロックに必要なシード値である。シード値生成部105は、シード値設定部104が複数のシード値保持部103のうちのいずれか1つにシード値を書き込んだことを確認すると、そのシード値を基に、他のブロックに必要なシード値を生成し、他のシード値保持部103に書き込む。疑似乱数列スキップ部106は、シード値生成部105がシード値を生成するために使用される。
The seed
図2は、図1の疑似乱数発生部102の構成例を示す図である。疑似乱数発生部102は、例えば、フィボナッチ線形帰還シフトレジスタで構成される。疑似乱数発生部102は、シフトレジスタ201と、排他的論理和演算器202とを有する。
Figure 2 is a diagram showing an example of the configuration of the pseudorandom
シフトレジスタ201は、31ビットのレジスタで構成され、左から1ビットを入力すると、全レジスタのビットが右に1ビットシフトされ、一番右からあふれた1ビットが、疑似乱数として出力される。排他的論理和演算器202は、シフトレジスタ201の出力ビットと、シフトレジスタ201の31ビットのレジスタのうちのいくつかのレジスタのビットを入力する。そして、排他的論理和演算器202は、入力ビットの排他的論理和の結果として1ビットをシフトレジスタ201の初段のレジスタに出力する。これにより、疑似乱数発生部102は、31ビットの疑似乱数を生成することができる。
The
図3は、疑似乱数発生部102で実装されているフィボナッチ線形帰還シフトレジスタを動作させたときの、シフトレジスタ201のビット値の遷移を表す図である。シード値301は、シフトレジスタ201の初期値を表している。遷移値302は、乱数の生成を1回、2回、3回、・・・、231-2回と繰り返したときに、シフトレジスタ201のビット値がどのように遷移するかを表している。シード値301と遷移値302は、すべて異なる値をとる。遷移値303は、231-1回目の遷移値であるが、231-1回目ではじめて、シード値301と同じ値になる。遷移値304は、231回目以降の遷移値を表しているが、遷移値302と同じ値になる。すなわち、シフトレジスタ201は、生成する値に周期性があり、シード値301と遷移値302が表す231-1個の値を1周期とした数列を繰り返し生成する。
3 is a diagram showing the transition of the bit value of the
シフトレジスタ201は、31ビットのレジスタであるので、シフトレジスタ201が表せる数の個数は231個が上限である。ただし、全ビットが0の場合は、ビット値が変化しないため、乱数生成には使えず、実際の上限は231-1個となる。また、シフトレジスタ201のビット値遷移の1周期の長さも231-1個である。つまり、図3は、シード値301から231-1回目の遷移値303に到達するまでに、シフトレジスタ201が値として取ることのできる231-1個のすべての値を巡った後に、最初の値に戻ってきたことを表している。
Since
上記から次のことがわかる。シフトレジスタ201は、どのようなシード値301を選んだとしても、シード値301か遷移値302のいずれかの値になるので、生成される乱数列も、図3で示した順番でしか生成されない。
From the above, we can see the following. No matter what
つまり、シード値301に関して、次のことがわかる。まず、2つのシード値が同じであれば、同じ遷移になるので、同じ疑似乱数列が生成されてしまう。また、2つのシード値が異なっていたとしても、シード値301と遷移値302が表す数列において、近い2つの値をシード値としている場合、生成される疑似乱数列が部分的に一致してしまう。なお、近い2つの値をシード値とするとは、各ブロックの画像処理で必要としている疑似乱数の個数よりも、シード値間の距離が短いことを意味している。
In other words, the following can be seen regarding
画像処理において、このような疑似乱数列の衝突が起きると、各ブロックの画像処理結果が部分的に一致してしまい、模様として認識されてしまう可能性がある。 When such pseudo-random number sequences collide in image processing, the image processing results for each block may partially match, which may be recognized as a pattern.
本実施形態は、これを避けるために、各ブロックのシード値の間隔を、シード値301と遷移値302が示す数列上において、十分離した値にすることで、各ブロックの疑似乱数列の衝突を防ぐことを目的としている。なお、各ブロックのシード値の間隔を十分離した値にするとは、各ブロックの画像処理で必要となる疑似乱数の最大個数よりも、広い間隔を空けた値にするという意味である。例えば、疑似乱数がブロック毎に最大100万個必要であれば、各ブロックのシード値の間隔を200万にすれば、衝突を防ぐことができる。
To avoid this, this embodiment aims to prevent collisions between the pseudo-random number sequences of each block by setting the seed values of each block to values that are sufficiently separated on the sequence indicated by the
図4は、図1のシード値生成部105の処理方法を示すフローチャートである。ステップS401では、シード値設定部104は、複数のシード値保持部103のうちのいずれか1つに、31ビットのシード値を書き込む。シード値生成部105は、シード値設定部104による31ビットのシード値の書き込みが終了するのを待ち、終了したらステップS402に進む。
Figure 4 is a flowchart showing a processing method of the seed
ステップS402では、シード値生成部105は、ステップS401で書き込まれたシード値保持部103の31ビットのシード値を読み込む。次に、ステップS403では、シード値生成部105は、疑似乱数列スキップ部106の処理の実行を指示し、次のブロックのシード値を求める。次に、ステップS404では、シード値生成部105は、ステップS403で求めたシード値を、複数のシード値保持部103のうちの他のいずれか一つに書き込む。
In step S402, the seed
次に、ステップS405では、シード値生成部105は、必要なすべてのシード値が、すべてのシード値保持部103に書き込まれているか否かを判定する。シード値生成部105は、すべてのシード値が書き込まれていない場合には、ステップS403に戻り、他のブロックのシード値の処理を繰り返し、すべてのシード値が書き込まれている場合には、図4のフローチャートの処理を終了する。これにより、シード値生成部105は、入力画像の複数のブロックに対応する複数のシード値を複数のシード値保持部103に保持させることができる。
Next, in step S405, the seed
図5は、図1の疑似乱数列スキップ部106の処理方法を説明するための図である。図5は、疑似乱数列スキップ部106で計算される処理内容を示す。疑似乱数列スキップ部106は、図2で示した疑似乱数発生部102の線形帰還シフトレジスタのビット値を所定の回数だけシフトした場合の値を出力する回路である。例えば、疑似乱数列スキップ部106は、200万回だけシフトした後の値を出力するように実装している。入力値501は、疑似乱数列スキップ部106の線形帰還シフトレジスタの初期の31ビットの値である。排他的論理和演算器502は、図2の排他的論理和演算器202と同じ処理を行う。遷移値503は、図2で示した疑似乱数発生部102のシフトレジスタ201のビットをシフトした結果と同じ値を表している。出力値504は、疑似乱数列スキップ部106の線形帰還シフトレジスタのビット値をシフトし、遷移値503が200万回生成された後のビット値である。
Figure 5 is a diagram for explaining the processing method of the pseudorandom number
図5を見ると、入力値501と出力値504の間にある演算は、排他的論理和演算器502だけであることがわかる。すなわち、出力値504の各ビット値を表す式は、入力値501の各ビットと、排他的論理和演算器502の演算だけで表すことができる。
Looking at Figure 5, we can see that the only operation between the
排他的論理和演算器502の演算だけの式は、式の変形により、簡単な式に変換できる。排他的論理和演算器502の演算は、交換律と結合律が成り立つので、計算する順番を任意に入れ替えることができる。また、同一の値を偶数個集めて排他的論理和を計算すると、0になる。そして、ある値と0との排他的論理和は、値を変化させないので、0は無視してよい。つまり、式中に偶数個現れるビット値は、すべて無視してよい。同様に、式中に奇数個現れるビット値は、1つを残して、すべて無視してよい。すなわち、出力値504の各ビット値を計算する式は、入力値501のビット値を重複無しで、いくつか選択した上で、排他的論理和をとるだけの式にできることを表している。
The formula that only involves the operation of the exclusive OR
図6は、図1の疑似乱数列スキップ部106の構成例を示す図である。疑似乱数列スキップ部106は、31個の1ビット算出部601を有する。31個の1ビット算出部601の各々は、排他的論理和演算器604を有する。
Figure 6 is a diagram showing an example of the configuration of the pseudo-random number
1ビット算出部601は、31ビットの入力値602を入力し、1ビットの出力値605を出力する。31個の1ビット算出部601は、それぞれ、31個の1ビット出力値605を算出する。
The 1-
入力値602は、31ビットの入力値である。マスク603は、31ビットの入力値602のうちの一部のビットだけを選択し、選択したビットを排他的論理和演算器604に出力し、他のビットを0にして排他的論理和演算器604に出力する。排他的論理和演算器604は、マスク603が出力するビット値の排他的論理和を計算し、その計算結果を1ビットの出力値605として出力する。
The
なお、マスク603が選択するビットが固定の場合は、マスク603を単なる結線とし、排他的論理和演算器604は、マスク603により結線されているビットだけの排他的論理和を計算してもよい。また、マスク603の別の構成例として、マスク603で選択するビットを外部から変更できるようにして、各シード値の間隔を変更できるようにしてもよい。
When the bits selected by the
また、マスク603のさらに別の構成例として、マスク603と排他的論理和演算器604を1ビットずつ処理するようにして、31サイクルかけて、1ビットの出力値605を計算するようにすることもできる。この場合、疑似乱数列スキップ部106の計算にかかるサイクル数が増えるが、より回路規模を小さくすることができる。
As another example of the configuration of the
図6では、疑似乱数列スキップ部106は、31個の1ビット算出部601で構成されているが、別の構成例として、1個の1ビット算出部601だけの構成でもよい。この構成の場合は、1ビット算出部601の処理を31回繰り返し実行することで、図6と同じ結果の31ビットの出力値605を算出できる。
In FIG. 6, the pseudo-random number
以上のように、シード値設定部104は、複数のシード値保持部103のうちの1個目のシード値保持部103に対して、1個目のブロックの31ビットのシード値を書き込む。その後、シード値生成部105は、1個目のシード値保持部103から1個目のブロックの31ビットのシード値を読み出す。そして、シード値生成部105は、疑似乱数列スキップ部106に対して、1個目のブロックの31ビットのシード値を出力し、2個目のブロックの31ビットのシード値の演算を指示する。疑似乱数列スキップ部106は、図5のように、1個目のブロックの31ビットのシード値を入力値501として入力し、200万回のビットシフト後、2個目のブロックのシード値を出力値504としてシード値生成部105に出力する。シード値生成部105は、2個目のブロックのシード値を2個目のシード値保持部103に書き込む。1個目のブロックのシード値と2個目のシード値との間隔は、200万回分である。
As described above, the seed
次に、シード値生成部105は、疑似乱数列スキップ部106に対して、2個目のブロックの31ビットのシード値を出力し、3個目のブロックの31ビットのシード値の演算を指示する。疑似乱数列スキップ部106は、図5のように、2個目のブロックの31ビットのシード値を入力値501として入力し、200万回のビットシフト後、3個目のブロックのシード値を出力値504としてシード値生成部105に出力する。シード値生成部105は、3個目のブロックのシード値を3個目のシード値保持部103に書き込む。2個目のブロックのシード値と3個目のシード値との間隔は、200万回分である。
Next, the seed
以下、同様にして、シード値生成部105は、疑似乱数列スキップ部106を使用し、すべてのブロックの31ビットのシード値をすべてのシード値保持部103に書き込む。隣接するブロックのシード値の間隔は、200万回分である。
The seed
画像処理回路101は、入力画像の1個目のブロックに対して、1個目のシード値保持部103から1個目のブロックのシード値を読み出し、疑似乱数発生部102に対して、1個目のブロックのシード値を出力し、疑似乱数生成を指示する。すると、疑似乱数発生部102は、図3のように、1個目のブロックのシード値をシード値301として、シフトレジスタ201に設定し、例えば100万個の疑似乱数を生成し、例えば100万個の疑似乱数を画像処理回路101に出力する。画像処理回路101は、例えば100万個の疑似乱数を用いて、入力画像の1個目のブロックに対して、例えば画像の拡大縮小処理等の画像処理を行い、1個目のブロックの出力画像を生成および保存する。
For the first block of the input image, the
次に、画像処理回路101は、入力画像の2個目のブロックに対して、2個目のシード値保持部103から2個目のブロックのシード値を読み出し、疑似乱数発生部102に対して、2個目のブロックのシード値を出力し、疑似乱数生成を指示する。すると、疑似乱数発生部102は、図3のように、2個目のブロックのシード値をシード値301として、シフトレジスタ201に設定し、例えば100万個の疑似乱数を生成し、例えば100万個の疑似乱数を画像処理回路101に出力する。画像処理回路101は、例えば100万個の疑似乱数を用いて、入力画像の2個目のブロックに対して、例えば画像の拡大縮小処理等の画像処理を行い、2個目のブロックの出力画像を生成および保存する。
Next, for the second block of the input image, the
以下、同様にして、画像処理回路101は、入力画像の3個目から最後までのブロックに対して、それぞれ、疑似乱数を用いて画像処理を行い、3個目から最後までのブロックの出力画像を生成および保存する。そして、画像処理回路101は、すべてのブロックの出力画像を統合し、その統合した出力画像を出力する。
In the same manner, the
疑似乱数発生部102は、隣接するブロックのシード値の間隔が200万回分であるので、入力画像の各ブロックの疑似乱数列の衝突を防止することができる。画像処理回路101は、例えば、入力画像の各ブロックの画素の挿入位置の重複を防止し、画像パターンの周期的な変化による模様の発生を防止することができる。
The
以上のように、シード値設定部104は、1個のシード値保持部103に対して、1個のシード値を設定する。シード値生成部105は、疑似乱数列スキップ部106を用いて、シード値設定部104により設定された1個のシード値を基に、入力画像を分割した複数のブロックのための複数のシード値を生成する。疑似乱数発生部102は、疑似乱数生成部であり、上記の複数のブロックのための複数のシード値を基に、上記の複数のブロックの各々ごとの疑似乱数列を生成する。画像処理回路101は、画像処理部であり、上記の複数のブロックの各々ごとの疑似乱数列を用いて、入力画像を分割した複数のブロックをそれぞれ画像処理する。
As described above, the seed
シード値生成部105は、疑似乱数発生部102が上記の1個のシード値を基に生成する疑似乱数列のうちの所定数ずつスキップした複数の疑似乱数を複数のシード値として生成する。所定数は、画像処理回路101が各ブロックの画像処理に用いる疑似乱数の最大個数よりも多い数である。
The seed
上記の複数のシード値は、上記の1個のシード値を含む。シード値設定部104は、上記の1個のシード値を1個のシード値保持部103に書き込む。シード値生成部105は、上記の複数のシード値のうちの上記の1個のシード値以外のシード値を他のシード値保持部103に書き込む。
The multiple seed values include the one seed value. The seed
疑似乱数発生部102は、図2のように、シード値を基に排他的論理和演算を行うことにより、疑似乱数を生成する。シード値生成部105は、疑似乱数列スキップ部106を用い、図6のように、上記の複数のシード値のうちの1個のシード値の一部のビットに対して排他的論理和演算を行うことにより、上記の複数のシード値のうちの他のシード値を生成する。
The
疑似乱数列スキップ部106は、複数の1ビット算出部601を有する。複数の1ビット算出部601の各々は、ビット演算部であり、上記の複数のシード値のうちの1個のシード値の一部のビットに対して排他的論理和演算を行うことにより、上記の複数のシード値のうちの他のシード値の1ビットを生成する。
The pseudo-random number
なお、疑似乱数列スキップ部106は、上記の複数のシード値のうちの1個のシード値の一部のビットに対して排他的論理和演算を行うことにより、上記の複数のシード値のうちの他のシード値の1ビットを生成する処理を複数回繰り返してもよい。また、疑似乱数列スキップ部106は、上記の複数のシード値のうちの1個のシード値の一部のビットを他のビットに変更することにより、上記の所定数を変更することができる。
The pseudo-random number
このように、本実施形態では、シード値生成部105は、シード値保持部103に保持されるシード値の間隔を調整することができる。各シード値で生成が必要な疑似乱数の最大個数は、各ブロックのサイズ等で推定できるので、その最大個数よりもシード値の間隔を広くしておけば、各ブロックで使用される疑似乱数列が衝突することを防ぐことができる。
In this way, in this embodiment, the seed
シード値設定部104が最初の1つのシード値を設定すると、シード値生成部105は、疑似乱数列スキップ部106を用いて、疑似乱数列が衝突しない複数のシード値を自動で生成できる。これにより、入力画像を分割した複数のブロックのそれぞれのシード値を外部から設定する必要がなく、各ブロックの画像処理のための疑似乱数の発生を短時間で実施することができる。
When the seed
(第2の実施形態)
第2の実施形態に係る画像処理装置100は、第1実施形態の図1と同じ構成を有するが、疑似乱数発生部102がガロア線形帰還シフトレジスタで構成される。ガロア線形帰還シフトレジスタの場合でも、疑似乱数列スキップ部106は、第1実施形態の図6で示した構成で実現できる。
Second Embodiment
The
図7は、第2の実施形態に係る疑似乱数発生部102の構成例を示す図である。疑似乱数発生部102は、複数の排他的論理和演算器701と、シフトレジスタ702とを有する。排他的論理和演算器701は、2ビットを入力し、入力の2ビットの排他的論理和の1ビット結果を出力する。シフトレジスタ702は、31個のレジスタを有し、それぞれのレジスタが1ビットを保持し、全体のレジスタで31ビットの値を保持している。ただし、シフトレジスタ702の31ビットのレジスタの間に、排他的論理和演算器701がいくつか挿入されている。排他的論理和演算器701は、前段のレジスタから入力する1ビットと、シフトレジスタ702の出力端(右端)から出力される1ビットとの排他的論理和をとって、1ビットを次段のレジスタに出力する。これにより、疑似乱数発生部102は、31ビットの疑似乱数を生成することができる。
Figure 7 is a diagram showing an example of the configuration of the pseudorandom
図8は、第1の実施形態の図5に対応し、疑似乱数列スキップ部106の処理方法を説明するための図である。ただし、図8では、図5の1段分のみを示している。入力値801は、疑似乱数列スキップ部106のガロア線形帰還シフトレジスタの初期の31ビットの値である。排他的論理和演算器802は、図7の排他的論理和演算器701と同じ処理を行う。遷移値803は、図7のシフトレジスタ702のビットをシフトした結果と同じ値を表している。
Figure 8 corresponds to Figure 5 of the first embodiment, and is a diagram for explaining the processing method of the pseudo-random number
図8を見ると、本実施形態の疑似乱数列スキップ部106の演算は、排他的論理和演算器802のみであることがわかる。すなわち、第1実施形態の図5で検討した結果と同じように、本実施形態の疑似乱数列スキップ部106も、図6の構成で実装することができる。
As can be seen from FIG. 8, the pseudo-random number
(第3の実施形態)
第3の実施形態に係る画像処理装置100は、第1の実施形態の図1と同じ構成を有するが、疑似乱数発生部102がXorshiftで構成される。Xorshiftの場合も、疑似乱数列スキップ部106は、第1の実施形態の図6で示した構成で実現できる。
Third Embodiment
The
図9は、疑似乱数発生部102のXorshiftの疑似乱数発生処理の一例を示すフローチャートである。ただし、変数yは、32ビットの符号無整数である。変数yは、疑似乱数列の内の一つの値を表している。図9の処理により、変数yの値を次の疑似乱数の値に更新する。
Figure 9 is a flowchart showing an example of the pseudo-random number generation process of Xorshift in the
ステップS901では、疑似乱数発生部102は、変数yの値と、変数yの値を13ビット左シフトした値との排他的論理和をとって、変数yに代入する。ステップS902では、疑似乱数発生部102は、変数yの値と、変数yの値を17ビット右シフトした値との排他的論理和をとって、変数yに代入する。ステップS903では、疑似乱数発生部102は、変数yの値と、変数yの値を5ビット左シフトした値との排他的論理和をとって、変数yに代入する。以上により、変数yは、疑似乱数として生成される。なお、図9の処理において、左シフトもしくは右シフトした結果、32ビットの範囲からはみ出したビットは無視される。
In step S901, the pseudo-random
図10は、図9で示したXorshiftの疑似乱数発生処理を排他的論理和演算器1002で示した図である。また、図10は、本実施形態に係る疑似乱数発生部102の構成例を示す図である。
Figure 10 is a diagram showing the pseudo-random number generation process of Xorshift shown in Figure 9 using an
疑似乱数値1001は、現在の32ビットの疑似乱数値を表している。疑似乱数発生部102は、図10の回路を使って、現在の疑似乱数値1001を基に次回の疑似乱数値1005を求める。排他的論理和演算器1002は、排他的論理和演算を行う。変数1003は、ステップS901の計算結果の変数yを表している。変数1004は、ステップS902の計算結果の変数yを表している。疑似乱数値1005は、ステップS903の計算結果の変数yを表している。
本実施形態に係る疑似乱数列スキップ部106の処理内容は、図10の処理を、図5のように繰り返すことで実現できる。図10を見ると、本実施形態の疑似乱数列スキップ部106の演算は、排他的論理和演算器1002のみであることがわかる。すなわち、第1実施形態と同様に、本実施形態の疑似乱数列スキップ部106も、図6の構成で実装することができる。
The processing contents of the pseudo-random number
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Other Embodiments
The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) for implementing one or more of the functions.
なお、上記実施形態は、何れも本発明を実施するにあたっての具体例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。 The above embodiments are merely illustrative examples of how the present invention may be implemented, and the technical scope of the present invention should not be interpreted in a limiting manner based on these embodiments. In other words, the present invention can be implemented in various forms without departing from its technical concept or main features.
100 画像処理装置、101 画像処理回路、102 疑似乱数発生部、103 シード値保持部、104 シード値設定部、105 シード値生成部、106 疑似乱数列スキップ部 100 Image processing device, 101 Image processing circuit, 102 Pseudo-random number generation unit, 103 Seed value holding unit, 104 Seed value setting unit, 105 Seed value generation unit, 106 Pseudo-random number sequence skip unit
Claims (12)
前記複数のブロックのための複数のシード値を基に、前記複数のブロックの各々ごとの疑似乱数列を生成する疑似乱数生成手段と、
前記複数のブロックの各々ごとの疑似乱数列を用いて、前記画像を分割した複数のブロックをそれぞれ画像処理する画像処理手段とを有し、
前記シード値生成手段は、前記疑似乱数生成手段が前記1個のシード値を基に生成する疑似乱数列のうちの所定数ずつスキップした複数の疑似乱数を前記複数のシード値として生成し、前記複数のシード値のうちの1個のシード値の一部のビットを他のビットに変更することにより、前記所定数を変更することを特徴とする画像処理装置。 a seed value generating means for generating a plurality of seed values for a plurality of blocks obtained by dividing an image based on one seed value;
a pseudo-random number generating means for generating a pseudo-random number sequence for each of the plurality of blocks based on a plurality of seed values for the plurality of blocks;
an image processing means for performing image processing on each of a plurality of blocks obtained by dividing the image, using a pseudo-random number sequence for each of the plurality of blocks;
The image processing device is characterized in that the seed value generation means generates a plurality of pseudo-random numbers, which are generated by skipping a predetermined number from a pseudo-random number sequence generated by the pseudo-random number generation means based on the one seed value, as the plurality of seed values, and changes the predetermined number by changing some bits of one of the plurality of seed values to other bits .
前記シード値設定手段は、前記1個のシード値を書き込み、
前記シード値生成手段は、前記複数のシード値のうちの前記1個のシード値以外のシード値を書き込むことを特徴とする請求項3に記載の画像処理装置。 the plurality of seed values includes the one seed value,
The seed value setting means writes the one seed value,
4. The image processing apparatus according to claim 3, wherein the seed value generating means writes a seed value other than the one seed value among the plurality of seed values.
前記シード値生成手段は、前記複数のシード値のうちの1個のシード値の一部のビットに対して排他的論理和演算を行うことにより、前記複数のシード値のうちの他のシード値を生成することを特徴とする請求項1~4のいずれか1項に記載の画像処理装置。 The pseudo-random number generating means generates pseudo-random numbers by performing an exclusive OR operation based on the seed value;
The image processing device according to any one of claims 1 to 4, characterized in that the seed value generation means generates another of the plurality of seed values by performing an exclusive-OR operation on some bits of one of the plurality of seed values.
前記複数のビット演算手段の各々は、前記複数のシード値のうちの1個のシード値の一部のビットに対して排他的論理和演算を行うことにより、前記複数のシード値のうちの他のシード値の1ビットを生成することを特徴とする請求項5に記載の画像処理装置。 The seed value generating means includes a plurality of bit operation means,
6. The image processing device according to claim 5, wherein each of the plurality of bit operation means generates one bit of another of the plurality of seed values by performing an exclusive OR operation on some bits of one of the plurality of seed values.
前記複数のブロックのための複数のシード値を基に、前記複数のブロックの各々ごとの疑似乱数列を生成する疑似乱数生成ステップと、
前記複数のブロックの各々ごとの疑似乱数列を用いて、前記画像を分割した複数のブロックをそれぞれ画像処理する画像処理ステップとを有し、
前記シード値生成ステップでは、前記疑似乱数生成ステップで前記1個のシード値を基に生成する疑似乱数列のうちの所定数ずつスキップした複数の疑似乱数を前記複数のシード値として生成し、前記複数のシード値のうちの1個のシード値の一部のビットを他のビットに変更することにより、前記所定数を変更することを特徴とする画像処理装置の画像処理方法。 a seed value generating step of generating a plurality of seed values for a plurality of blocks obtained by dividing the image based on one seed value;
a pseudorandom number generating step of generating a pseudorandom number sequence for each of the plurality of blocks based on a plurality of seed values for the plurality of blocks;
and an image processing step of performing image processing on each of a plurality of blocks obtained by dividing the image, using a pseudo-random number sequence for each of the plurality of blocks;
an image processing method for an image processing device, characterized in that in the seed value generation step, a plurality of pseudo-random numbers are generated as the plurality of seed values by skipping a predetermined number from the pseudo-random number sequence generated based on the one seed value in the pseudo-random number generation step, and the predetermined number is changed by changing some bits of one of the plurality of seed values to other bits .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020218427A JP7612412B2 (en) | 2020-12-28 | 2020-12-28 | IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD AND PROGRAM FOR IMAGE PROCESSING APPARATUS |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020218427A JP7612412B2 (en) | 2020-12-28 | 2020-12-28 | IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD AND PROGRAM FOR IMAGE PROCESSING APPARATUS |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022103663A JP2022103663A (en) | 2022-07-08 |
| JP7612412B2 true JP7612412B2 (en) | 2025-01-14 |
Family
ID=82279512
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020218427A Active JP7612412B2 (en) | 2020-12-28 | 2020-12-28 | IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD AND PROGRAM FOR IMAGE PROCESSING APPARATUS |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7612412B2 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003281515A (en) | 2002-03-22 | 2003-10-03 | Canon Inc | Image processing apparatus and method |
| JP2018182543A (en) | 2017-04-13 | 2018-11-15 | キヤノン株式会社 | Imaging device, imaging system, and control method of imaging device |
| JP2019016876A (en) | 2017-07-05 | 2019-01-31 | キヤノン株式会社 | Image processing system, image processing method, and program |
-
2020
- 2020-12-28 JP JP2020218427A patent/JP7612412B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003281515A (en) | 2002-03-22 | 2003-10-03 | Canon Inc | Image processing apparatus and method |
| JP2018182543A (en) | 2017-04-13 | 2018-11-15 | キヤノン株式会社 | Imaging device, imaging system, and control method of imaging device |
| JP2019016876A (en) | 2017-07-05 | 2019-01-31 | キヤノン株式会社 | Image processing system, image processing method, and program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022103663A (en) | 2022-07-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Liang et al. | A new one-dimensional chaotic map for image encryption scheme based on random DNA coding | |
| KR102137956B1 (en) | Block mining methods and apparatus | |
| CN103098018B (en) | Bit sequence generator | |
| US8843539B2 (en) | Generation of seed value for pseudo random number generator | |
| CN110413257B (en) | random number generator circuit | |
| KR20140001910A (en) | Data processing apparatus having bit field manipulation instruction and method | |
| CN110912674B (en) | Image encryption method and device, electronic equipment and readable storage medium | |
| CN103812596B (en) | The generation method and device of pseudo-random sequence | |
| JP4418713B2 (en) | Random number generation method and random number generator | |
| IT202000006475A1 (en) | PROCEDURE FOR PERFORMING DATA ENCRYPTING OPERATIONS IN A PROCESSING DEVICE, CORRESPONDING PROCESSING DEVICE AND IT PRODUCT | |
| JP7612412B2 (en) | IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD AND PROGRAM FOR IMAGE PROCESSING APPARATUS | |
| CN114390317A (en) | Encryption method and system for streaming video | |
| JP6044628B2 (en) | Random number generation device, random number generation method, object placement device, and computer program | |
| JP7006519B2 (en) | Video signal processing device, dither pattern generation method, and dither pattern generation program | |
| CN105931661B (en) | Scrambling device, electronic equipment and information processing method | |
| WO2025093045A1 (en) | Efficient post-processing method and system for reducing quantum random number bias | |
| JP2014164342A (en) | Pseudo-random number generation circuit and pseudo-random number generation method | |
| JP2013021461A (en) | Random data generation circuit and memory system having the same | |
| JP4709685B2 (en) | Pseudorandom number generation device, pseudorandom number generation method, pseudorandom number generation program, encryption device, and decryption device | |
| JP2014222394A (en) | Semiconductor storage device and random number generator | |
| US7668893B2 (en) | Data generator having linear feedback shift registers for generating data pattern in forward and reverse orders | |
| JP2001142682A (en) | Random number generation device and random number generation method | |
| WO2015133095A1 (en) | Apparatus for generating parity check code, coding method, coding apparatus, and storage medium | |
| CN116547655A (en) | Hash function with pre-scrambler | |
| Couturier et al. | Pseudorandom number generator on GPU |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231215 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240829 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240917 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241111 |
|
| 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: 20241126 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241225 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7612412 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |