Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7612412B2 - IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD AND PROGRAM FOR IMAGE PROCESSING APPARATUS - Google Patents
[go: Go Back, main page]

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 PDF

Info

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
Application number
JP2020218427A
Other languages
Japanese (ja)
Other versions
JP2022103663A (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 JP2020218427A priority Critical patent/JP7612412B2/en
Publication of JP2022103663A publication Critical patent/JP2022103663A/en
Application granted granted Critical
Publication of JP7612412B2 publication Critical patent/JP7612412B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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, Patent Document 1 describes a method for enlarging an image by adding pixels to the input image and scattering the added locations using pseudo-random numbers, thereby making the points where the image pattern changes due to the added pixels less noticeable.

特許文献2には、複数の疑似乱数発生回路に別々のシード値(初期値)を設定することで、複数の疑似乱数発生回路で同じ乱数が生成されることを回避する方法が記載されている。 Patent document 2 describes a method for preventing multiple pseudo-random number generating circuits from generating the same random numbers by setting different seed values (initial values) for the multiple pseudo-random number generating circuits.

特許文献3には、複数の疑似乱数発生回路に同じ初期値を設定するが、疑似乱数列から疑似乱数を取り出す位置をそれぞれの疑似乱数発生回路で変えることで、異なる疑似乱数を生成する方法が記載されている。 Patent document 3 describes a method of generating different pseudorandom numbers by setting the same initial value to multiple pseudorandom number generating circuits, but changing the position at which the pseudorandom numbers are extracted from the pseudorandom number sequence for each pseudorandom number generating circuit.

特許文献4および特許文献5には、線形帰還シフトレジスタの位相を任意に進めた場合のシフトレジスタの値を算出する方法が記載されている。 Patent Document 4 and Patent Document 5 describe methods for calculating the value of a linear feedback shift register when the phase of the shift register is arbitrarily advanced.

特許第6066955号公報Patent No. 6066955 特開平5-206793号公報Japanese Patent Application Publication No. 5-206793 特開2009-151429号公報JP 2009-151429 A 特開2003-345246号公報JP 2003-345246 A 特開平11-4144号公報Japanese Patent Application Publication No. 11-4144

Marsaglia, "Xorshift RNGs" (2003)Marsaglia, "Xorshift RNGs" (2003)

しかし、特許文献3の方法では、画像を複数のブロックに分割し、各ブロックについて疑似乱数を生成する場合には、疑似乱数列の疑似乱数を多数生成する必要がある。また、特許文献4および特許文献5には、位相の進め方が記載されているが、画像を複数のブロックに分割した画像処理に必要な回路構成、例えば複数のシード値の持ち方やシード値生成のタイミングを開示していない。 However, in the method of Patent Document 3, when dividing an image into multiple blocks and generating pseudo-random numbers for each block, it is necessary to generate a large number of pseudo-random numbers in a pseudo-random number sequence. Furthermore, Patent Documents 4 and 5 describe a method of advancing the phase, but do not disclose the circuit configuration required for image processing in which an image is divided into multiple blocks, such as how to hold multiple seed values or the timing of generating seed values.

本発明の目的は、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.

画像処理装置の構成例を示す図である。FIG. 1 illustrates an example of the configuration of an image processing device. 疑似乱数発生部の構成例を示す図である。FIG. 2 illustrates an example of the configuration of a pseudo-random number generating unit; シフトレジスタの値の遷移を示す図である。FIG. 13 is a diagram showing the transition of values in a shift register. シード値生成部の処理内容を示す図である。FIG. 13 is a diagram illustrating the process contents of a seed value generating unit. 疑似乱数列スキップ部の処理内容を説明するための図である。13 is a diagram for explaining the processing content of a pseudo-random number sequence skip unit. FIG. 疑似乱数列スキップ部の構成例を示す図である。FIG. 13 is a diagram illustrating an example of the configuration of a pseudo-random number sequence skip unit. 疑似乱数発生部の構成例を示す図である。FIG. 2 illustrates an example of the configuration of a pseudo-random number generating unit; 疑似乱数列スキップ部の処理内容を説明するための図である。13 is a diagram for explaining the processing content of a pseudo-random number sequence skip unit. FIG. Xorshiftの疑似乱数発生方法を示すフローチャートである。1 is a flowchart illustrating a pseudorandom number generation method of Xorshift. 疑似乱数発生部の構成例を示す図である。FIG. 2 illustrates an example of the configuration of a pseudo-random number generating unit; 線形帰還シフトレジスタの構成例を示す図である。FIG. 1 is a diagram illustrating an example of the configuration of a linear feedback shift register. 入力画像を複数のブロックに分割する例を示す図である。FIG. 13 is a diagram illustrating an example of dividing an input image into a plurality of blocks. 画素の挿入位置を示す図である。FIG. 13 is a diagram showing pixel insertion positions. 画素の挿入位置を示す図である。FIG. 13 is a diagram showing pixel insertion positions.

図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 shift register 1101 holds one bit, so that it can hold five bits in total. When one bit is input from the left, the bit being held is shifted by one. The exclusive-OR calculator 1102 inputs several bits of the shift register 1101, and outputs one bit as the result of the exclusive-OR of the input bits. Each time the shift register 1101 shifts once, one bit of the pseudorandom number is output.

なお、線形帰還シフトレジスタが生成する疑似乱数の周期は、最大になるように構成されている。疑似乱数の周期は、シフトレジスタ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 shift register 1101 can hold and the bits input to the exclusive OR calculator 1102. If the number of bits in the shift register 1101 is N, the number of bit states that the shift register 1101 can express is 2 N . However, if all the bits in the shift register 1101 are 0, the bits in the shift register 1101 will always be 0, so excluding this one pattern, the number of bit states that the shift register 1101 can express is 2 N -1. Therefore, 2 N -1 is the maximum period of the pseudorandom number. The input to the exclusive OR calculator 1102 is configured so that the period of the bit state represented by the shift register 1101 is 2 N -1. As a result, the period of the pseudorandom number also becomes 2 N -1.

疑似乱数は、画像処理に使用することができる。画像データに対して行う拡大縮小処理やハーフトーン処理により発生するモアレや画像パターンの変化を目立ちにくくするために、画像処理に疑似乱数を使用することができる。例えば、画像の拡大処理を行うために、入力画像に画素の追加を行う。通常、画素を追加すると、追加を行った位置で、画像パターンが変化する。そのため、画素の追加地点が一律固定だと、追加を行った位置で起こる画像パターンの変化地点が一か所に固まって目立ってしまう。そのため、疑似乱数を用いて追加箇所をバラバラにすることで、画素追加による画像パターンの変化地点を目立たなくすることができる。 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 image processing device 100 according to the first embodiment. The image processing device 100 has an image processing circuit 101, a pseudo-random number generating unit 102, a plurality of seed value holding units 103, a seed value setting unit 104, a seed value generating unit 105, and a pseudo-random number sequence skip unit 106. An image processing method of the image processing device 100 will be described below.

画像処理回路101は、例えば画像の拡大縮小処理のような、疑似乱数を必要とする画像処理を行う。画像処理回路101は、入力画像を入力し、入力画像を複数のブロックに分割し、各ブロックに対して画像処理を施して、出力画像を出力する。 The image processing circuit 101 performs image processing that requires pseudo-random numbers, such as image enlargement and reduction. The image processing circuit 101 receives an input image, divides the input image into multiple blocks, performs image processing on each block, and outputs an output image.

疑似乱数発生部102は、線形帰還シフトレジスタを有し、疑似乱数列を生成する。複数のシード値保持部103は、それぞれ、入力画像の複数のブロックの画像処理に必要な疑似乱数列のシード値を保持する。例えば、画像処理回路101が最大1024個のブロック分割を行う場合、シード値保持部103は、1024個で構成される。 The pseudo-random number generating unit 102 has a linear feedback shift register and generates a pseudo-random number sequence. The multiple seed value holding units 103 each hold a seed value of a pseudo-random number sequence required for image processing of multiple blocks of an input image. For example, if the image processing circuit 101 divides the image into a maximum of 1024 blocks, the number of seed value holding units 103 is 1024.

シード値設定部104は、複数のシード値保持部103のうちのいずれか1つに、シード値を設定する。このシード値は、複数のブロックのうちの1つのブロックに必要なシード値である。シード値生成部105は、シード値設定部104が複数のシード値保持部103のうちのいずれか1つにシード値を書き込んだことを確認すると、そのシード値を基に、他のブロックに必要なシード値を生成し、他のシード値保持部103に書き込む。疑似乱数列スキップ部106は、シード値生成部105がシード値を生成するために使用される。 The seed value setting unit 104 sets a seed value in one of the multiple seed value holding units 103. This seed value is a seed value required for one of the multiple blocks. When the seed value generation unit 105 confirms that the seed value setting unit 104 has written a seed value in one of the multiple seed value holding units 103, it generates seed values required for other blocks based on the seed value and writes them in the other seed value holding units 103. The pseudo-random number sequence skip unit 106 is used by the seed value generation unit 105 to generate seed values.

図2は、図1の疑似乱数発生部102の構成例を示す図である。疑似乱数発生部102は、例えば、フィボナッチ線形帰還シフトレジスタで構成される。疑似乱数発生部102は、シフトレジスタ201と、排他的論理和演算器202とを有する。 Figure 2 is a diagram showing an example of the configuration of the pseudorandom number generating unit 102 in Figure 1. The pseudorandom number generating unit 102 is configured, for example, with a Fibonacci linear feedback shift register. The pseudorandom number generating unit 102 has a shift register 201 and an exclusive OR operator 202.

シフトレジスタ201は、31ビットのレジスタで構成され、左から1ビットを入力すると、全レジスタのビットが右に1ビットシフトされ、一番右からあふれた1ビットが、疑似乱数として出力される。排他的論理和演算器202は、シフトレジスタ201の出力ビットと、シフトレジスタ201の31ビットのレジスタのうちのいくつかのレジスタのビットを入力する。そして、排他的論理和演算器202は、入力ビットの排他的論理和の結果として1ビットをシフトレジスタ201の初段のレジスタに出力する。これにより、疑似乱数発生部102は、31ビットの疑似乱数を生成することができる。 The shift register 201 is composed of a 31-bit register, and when one bit is input from the left, the bits in all registers are shifted one bit to the right, and the bit that overflows from the right is output as a pseudo-random number. The exclusive-OR calculator 202 inputs the output bit of the shift register 201 and bits from some of the 31-bit registers of the shift register 201. The exclusive-OR calculator 202 then outputs one bit to the first-stage register of the shift register 201 as the result of the exclusive-OR of the input bits. This allows the pseudo-random number generator 102 to generate 31-bit pseudo-random numbers.

図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 shift register 201 when the Fibonacci linear feedback shift register implemented in the pseudo-random number generator 102 is operated. The seed value 301 represents the initial value of the shift register 201. The transition value 302 represents how the bit value of the shift register 201 transitions when random number generation is repeated once, twice, three times, ..., 2 31 -2 times. The seed value 301 and the transition value 302 are all different values. The transition value 303 is the transition value for the 2 31 -1th time, and becomes the same value as the seed value 301 for the first time in the 2 31 -1th time. The transition value 304 represents the transition value after the 2 31st time, and becomes the same value as the transition value 302. In other words, the shift register 201 generates values with periodicity, and repeatedly generates a sequence with 2 31 -1 values represented by the seed value 301 and the transition value 302 as one period.

シフトレジスタ201は、31ビットのレジスタであるので、シフトレジスタ201が表せる数の個数は231個が上限である。ただし、全ビットが0の場合は、ビット値が変化しないため、乱数生成には使えず、実際の上限は231-1個となる。また、シフトレジスタ201のビット値遷移の1周期の長さも231-1個である。つまり、図3は、シード値301から231-1回目の遷移値303に到達するまでに、シフトレジスタ201が値として取ることのできる231-1個のすべての値を巡った後に、最初の値に戻ってきたことを表している。 Since shift register 201 is a 31-bit register, the upper limit of the number of numbers that shift register 201 can represent is 2 31 . However, if all bits are 0, the bit value does not change and therefore it cannot be used to generate random numbers, so the actual upper limit is 2 31 -1. Furthermore, the length of one cycle of bit value transition in shift register 201 is also 2 31 -1. In other words, Figure 3 shows that, from seed value 301 to the 2 31 -1th transition value 303, shift register 201 has gone through all 2 31 -1 values that it can take as values, and then returned to the initial value.

上記から次のことがわかる。シフトレジスタ201は、どのようなシード値301を選んだとしても、シード値301か遷移値302のいずれかの値になるので、生成される乱数列も、図3で示した順番でしか生成されない。 From the above, we can see the following. No matter what seed value 301 is selected, the shift register 201 will have either the seed value 301 or the transition value 302, so the random number sequence generated will only be generated in the order shown in Figure 3.

つまり、シード値301に関して、次のことがわかる。まず、2つのシード値が同じであれば、同じ遷移になるので、同じ疑似乱数列が生成されてしまう。また、2つのシード値が異なっていたとしても、シード値301と遷移値302が表す数列において、近い2つの値をシード値としている場合、生成される疑似乱数列が部分的に一致してしまう。なお、近い2つの値をシード値とするとは、各ブロックの画像処理で必要としている疑似乱数の個数よりも、シード値間の距離が短いことを意味している。 In other words, the following can be seen regarding seed value 301. First, if the two seed values are the same, the same transition will result, and the same pseudo-random number sequence will be generated. Also, even if the two seed values are different, if two close values are used as seed values in the sequence represented by seed value 301 and transition value 302, the pseudo-random number sequences generated will partially match. Note that using two close values as seed values means that the distance between the seed values is shorter than the number of pseudo-random numbers required for image processing of each block.

画像処理において、このような疑似乱数列の衝突が起きると、各ブロックの画像処理結果が部分的に一致してしまい、模様として認識されてしまう可能性がある。 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 seed value 301 and the transition value 302. Setting the seed values of each block to values that are sufficiently separated means setting values that are spaced apart more widely than the maximum number of pseudo-random numbers required for image processing of each block. For example, if a maximum of 1 million pseudo-random numbers are required for each block, collisions can be prevented by setting the seed value interval of each block to 2 million.

図4は、図1のシード値生成部105の処理方法を示すフローチャートである。ステップS401では、シード値設定部104は、複数のシード値保持部103のうちのいずれか1つに、31ビットのシード値を書き込む。シード値生成部105は、シード値設定部104による31ビットのシード値の書き込みが終了するのを待ち、終了したらステップS402に進む。 Figure 4 is a flowchart showing a processing method of the seed value generation unit 105 of Figure 1. In step S401, the seed value setting unit 104 writes a 31-bit seed value to one of the multiple seed value holding units 103. The seed value generation unit 105 waits for the seed value setting unit 104 to finish writing the 31-bit seed value, and when finished, proceeds to step S402.

ステップS402では、シード値生成部105は、ステップS401で書き込まれたシード値保持部103の31ビットのシード値を読み込む。次に、ステップS403では、シード値生成部105は、疑似乱数列スキップ部106の処理の実行を指示し、次のブロックのシード値を求める。次に、ステップS404では、シード値生成部105は、ステップS403で求めたシード値を、複数のシード値保持部103のうちの他のいずれか一つに書き込む。 In step S402, the seed value generation unit 105 reads the 31-bit seed value written in step S401 from the seed value holding unit 103. Next, in step S403, the seed value generation unit 105 instructs the pseudo-random number sequence skip unit 106 to execute processing, and obtains a seed value for the next block. Next, in step S404, the seed value generation unit 105 writes the seed value obtained in step S403 into another one of the multiple seed value holding units 103.

次に、ステップS405では、シード値生成部105は、必要なすべてのシード値が、すべてのシード値保持部103に書き込まれているか否かを判定する。シード値生成部105は、すべてのシード値が書き込まれていない場合には、ステップS403に戻り、他のブロックのシード値の処理を繰り返し、すべてのシード値が書き込まれている場合には、図4のフローチャートの処理を終了する。これにより、シード値生成部105は、入力画像の複数のブロックに対応する複数のシード値を複数のシード値保持部103に保持させることができる。 Next, in step S405, the seed value generation unit 105 determines whether or not all necessary seed values have been written to all seed value holding units 103. If all seed values have not been written, the seed value generation unit 105 returns to step S403 and repeats the processing of seed values for other blocks, and if all seed values have been written, ends the processing of the flowchart in FIG. 4. In this way, the seed value generation unit 105 can cause multiple seed values corresponding to multiple blocks of the input image to be held in multiple seed value holding units 103.

図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 sequence skip unit 106 in Figure 1. Figure 5 shows the processing contents calculated by the pseudorandom number sequence skip unit 106. The pseudorandom number sequence skip unit 106 is a circuit that outputs a value when the bit value of the linear feedback shift register of the pseudorandom number generation unit 102 shown in Figure 2 is shifted a predetermined number of times. For example, the pseudorandom number sequence skip unit 106 is implemented to output a value after shifting only 2 million times. The input value 501 is the initial 31-bit value of the linear feedback shift register of the pseudorandom number sequence skip unit 106. The exclusive OR operator 502 performs the same processing as the exclusive OR operator 202 in Figure 2. The transition value 503 represents the same value as the result of shifting the bits of the shift register 201 of the pseudorandom number generation unit 102 shown in Figure 2. The output value 504 is the bit value after shifting the bit value of the linear feedback shift register of the pseudorandom number sequence skip unit 106 and generating the transition value 503 2 million times.

図5を見ると、入力値501と出力値504の間にある演算は、排他的論理和演算器502だけであることがわかる。すなわち、出力値504の各ビット値を表す式は、入力値501の各ビットと、排他的論理和演算器502の演算だけで表すことができる。 Looking at Figure 5, we can see that the only operation between the input value 501 and the output value 504 is the exclusive OR operator 502. In other words, the equation expressing each bit value of the output value 504 can be expressed only by each bit of the input value 501 and the operation of the exclusive OR operator 502.

排他的論理和演算器502の演算だけの式は、式の変形により、簡単な式に変換できる。排他的論理和演算器502の演算は、交換律と結合律が成り立つので、計算する順番を任意に入れ替えることができる。また、同一の値を偶数個集めて排他的論理和を計算すると、0になる。そして、ある値と0との排他的論理和は、値を変化させないので、0は無視してよい。つまり、式中に偶数個現れるビット値は、すべて無視してよい。同様に、式中に奇数個現れるビット値は、1つを残して、すべて無視してよい。すなわち、出力値504の各ビット値を計算する式は、入力値501のビット値を重複無しで、いくつか選択した上で、排他的論理和をとるだけの式にできることを表している。 The formula that only involves the operation of the exclusive OR calculator 502 can be transformed into a simpler formula by modifying the formula. The operations of the exclusive OR calculator 502 are commutative and associative, so the order of calculations can be changed as desired. Furthermore, when an even number of identical values are collected and the exclusive OR is calculated, the result is 0. And the exclusive OR of a certain value and 0 does not change the value, so 0 can be ignored. In other words, all bit values that appear an even number of times in the formula can be ignored. Similarly, all bit values that appear an odd number of times in the formula can be ignored except for one. In other words, the formula that calculates each bit value of the output value 504 can be reduced to a formula that only involves taking the exclusive OR of several selected bit values of the input value 501 without duplication.

図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 sequence skip unit 106 in Figure 1. The pseudo-random number sequence skip unit 106 has 31 1-bit calculation units 601. Each of the 31 1-bit calculation units 601 has an exclusive OR operator 604.

1ビット算出部601は、31ビットの入力値602を入力し、1ビットの出力値605を出力する。31個の1ビット算出部601は、それぞれ、31個の1ビット出力値605を算出する。 The 1-bit calculation unit 601 inputs a 31-bit input value 602 and outputs a 1-bit output value 605. Each of the 31 1-bit calculation units 601 calculates 31 1-bit output values 605.

入力値602は、31ビットの入力値である。マスク603は、31ビットの入力値602のうちの一部のビットだけを選択し、選択したビットを排他的論理和演算器604に出力し、他のビットを0にして排他的論理和演算器604に出力する。排他的論理和演算器604は、マスク603が出力するビット値の排他的論理和を計算し、その計算結果を1ビットの出力値605として出力する。 The input value 602 is a 31-bit input value. The mask 603 selects only some of the bits of the 31-bit input value 602, outputs the selected bits to the exclusive-or calculator 604, and sets the other bits to 0 and outputs them to the exclusive-or calculator 604. The exclusive-or calculator 604 calculates the exclusive-or of the bit values output by the mask 603, and outputs the calculation result as a 1-bit output value 605.

なお、マスク603が選択するビットが固定の場合は、マスク603を単なる結線とし、排他的論理和演算器604は、マスク603により結線されているビットだけの排他的論理和を計算してもよい。また、マスク603の別の構成例として、マスク603で選択するビットを外部から変更できるようにして、各シード値の間隔を変更できるようにしてもよい。 When the bits selected by the mask 603 are fixed, the mask 603 may simply be a wire, and the exclusive-or calculator 604 may calculate the exclusive-or of only the bits connected by the mask 603. As another example of the configuration of the mask 603, the bits selected by the mask 603 may be changed from the outside, so that the interval between each seed value can be changed.

また、マスク603のさらに別の構成例として、マスク603と排他的論理和演算器604を1ビットずつ処理するようにして、31サイクルかけて、1ビットの出力値605を計算するようにすることもできる。この場合、疑似乱数列スキップ部106の計算にかかるサイクル数が増えるが、より回路規模を小さくすることができる。 As another example of the configuration of the mask 603, the mask 603 and the exclusive OR calculator 604 can be configured to process one bit at a time, and the one-bit output value 605 can be calculated over 31 cycles. In this case, the number of cycles required for the calculation of the pseudo-random number sequence skip unit 106 increases, but the circuit scale can be further reduced.

図6では、疑似乱数列スキップ部106は、31個の1ビット算出部601で構成されているが、別の構成例として、1個の1ビット算出部601だけの構成でもよい。この構成の場合は、1ビット算出部601の処理を31回繰り返し実行することで、図6と同じ結果の31ビットの出力値605を算出できる。 In FIG. 6, the pseudo-random number sequence skip unit 106 is configured with 31 1-bit calculation units 601, but as another configuration example, it may be configured with only one 1-bit calculation unit 601. In this configuration, the process of the 1-bit calculation unit 601 is repeatedly executed 31 times to calculate a 31-bit output value 605, which is the same result as in FIG. 6.

以上のように、シード値設定部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 value setting unit 104 writes the 31-bit seed value of the first block to the first seed value holding unit 103 among the multiple seed value holding units 103. After that, the seed value generation unit 105 reads the 31-bit seed value of the first block from the first seed value holding unit 103. Then, the seed value generation unit 105 outputs the 31-bit seed value of the first block to the pseudo-random number sequence skip unit 106 and instructs the calculation of the 31-bit seed value of the second block. As shown in FIG. 5, the pseudo-random number sequence skip unit 106 inputs the 31-bit seed value of the first block as an input value 501, and after 2 million bit shifts, outputs the seed value of the second block to the seed value generation unit 105 as an output value 504. The seed value generation unit 105 writes the seed value of the second block to the second seed value holding unit 103. The interval between the seed value of the first block and the seed value of the second block is 2 million times.

次に、シード値生成部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 value generation unit 105 outputs the 31-bit seed value of the second block to the pseudo-random number sequence skip unit 106, and instructs it to calculate the 31-bit seed value of the third block. As shown in FIG. 5, the pseudo-random number sequence skip unit 106 inputs the 31-bit seed value of the second block as an input value 501, and after 2 million bit shifts, outputs the seed value of the third block to the seed value generation unit 105 as an output value 504. The seed value generation unit 105 writes the seed value of the third block to the third seed value holding unit 103. The interval between the seed value of the second block and the third seed value is 2 million times.

以下、同様にして、シード値生成部105は、疑似乱数列スキップ部106を使用し、すべてのブロックの31ビットのシード値をすべてのシード値保持部103に書き込む。隣接するブロックのシード値の間隔は、200万回分である。 The seed value generation unit 105 similarly uses the pseudo-random number sequence skip unit 106 to write the 31-bit seed values of all blocks to all seed value storage units 103. The interval between seed values of adjacent blocks is 2 million times.

画像処理回路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 image processing circuit 101 reads the seed value of the first block from the first seed value holding unit 103, outputs the seed value of the first block to the pseudo-random number generating unit 102, and instructs the pseudo-random number generation. Then, as shown in FIG. 3, the pseudo-random number generating unit 102 sets the seed value of the first block as the seed value 301 in the shift register 201, generates, for example, one million pseudo-random numbers, and outputs, for example, the one million pseudo-random numbers to the image processing circuit 101. The image processing circuit 101 performs image processing, such as image enlargement/reduction processing, on the first block of the input image, and generates and saves an output image of the first block.

次に、画像処理回路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 image processing circuit 101 reads the seed value of the second block from the second seed value holding unit 103, outputs the seed value of the second block to the pseudo-random number generating unit 102, and instructs the pseudo-random number generating unit 102 to generate pseudo-random numbers. Then, as shown in FIG. 3, the pseudo-random number generating unit 102 sets the seed value of the second block as the seed value 301 in the shift register 201, generates, for example, one million pseudo-random numbers, and outputs, for example, the one million pseudo-random numbers to the image processing circuit 101. The image processing circuit 101 performs image processing, such as image enlargement/reduction processing, on the second block of the input image using, for example, the one million pseudo-random numbers, and generates and saves an output image of the second block.

以下、同様にして、画像処理回路101は、入力画像の3個目から最後までのブロックに対して、それぞれ、疑似乱数を用いて画像処理を行い、3個目から最後までのブロックの出力画像を生成および保存する。そして、画像処理回路101は、すべてのブロックの出力画像を統合し、その統合した出力画像を出力する。 In the same manner, the image processing circuit 101 performs image processing using pseudo-random numbers on each of the third through last blocks of the input image, and generates and saves output images of the third through last blocks. The image processing circuit 101 then integrates the output images of all blocks and outputs the integrated output image.

疑似乱数発生部102は、隣接するブロックのシード値の間隔が200万回分であるので、入力画像の各ブロックの疑似乱数列の衝突を防止することができる。画像処理回路101は、例えば、入力画像の各ブロックの画素の挿入位置の重複を防止し、画像パターンの周期的な変化による模様の発生を防止することができる。 The pseudo-random number generator 102 can prevent collisions between pseudo-random number sequences in each block of the input image because the interval between seed values of adjacent blocks is 2 million times. The image processing circuit 101 can, for example, prevent overlapping of pixel insertion positions in each block of the input image, and prevent the occurrence of patterns due to periodic changes in the image pattern.

以上のように、シード値設定部104は、1個のシード値保持部103に対して、1個のシード値を設定する。シード値生成部105は、疑似乱数列スキップ部106を用いて、シード値設定部104により設定された1個のシード値を基に、入力画像を分割した複数のブロックのための複数のシード値を生成する。疑似乱数発生部102は、疑似乱数生成部であり、上記の複数のブロックのための複数のシード値を基に、上記の複数のブロックの各々ごとの疑似乱数列を生成する。画像処理回路101は、画像処理部であり、上記の複数のブロックの各々ごとの疑似乱数列を用いて、入力画像を分割した複数のブロックをそれぞれ画像処理する。 As described above, the seed value setting unit 104 sets one seed value for one seed value holding unit 103. The seed value generation unit 105 uses the pseudo-random number sequence skip unit 106 to generate multiple seed values for multiple blocks into which the input image is divided, based on the single seed value set by the seed value setting unit 104. The pseudo-random number generation unit 102 is a pseudo-random number generation unit, and generates a pseudo-random number sequence for each of the multiple blocks based on the multiple seed values for the multiple blocks. The image processing circuit 101 is an image processing unit, and performs image processing on each of the multiple blocks into which the input image is divided, using the pseudo-random number sequence for each of the multiple blocks.

シード値生成部105は、疑似乱数発生部102が上記の1個のシード値を基に生成する疑似乱数列のうちの所定数ずつスキップした複数の疑似乱数を複数のシード値として生成する。所定数は、画像処理回路101が各ブロックの画像処理に用いる疑似乱数の最大個数よりも多い数である。 The seed value generation unit 105 generates multiple pseudo-random numbers by skipping a predetermined number of pseudo-random numbers from the pseudo-random number sequence generated by the pseudo-random number generation unit 102 based on the above-mentioned one seed value, as multiple seed values. The predetermined number is a number greater than the maximum number of pseudo-random numbers used by the image processing circuit 101 for image processing of each block.

上記の複数のシード値は、上記の1個のシード値を含む。シード値設定部104は、上記の1個のシード値を1個のシード値保持部103に書き込む。シード値生成部105は、上記の複数のシード値のうちの上記の1個のシード値以外のシード値を他のシード値保持部103に書き込む。 The multiple seed values include the one seed value. The seed value setting unit 104 writes the one seed value to one seed value holding unit 103. The seed value generation unit 105 writes the seed values other than the one seed value of the multiple seed values to the other seed value holding units 103.

疑似乱数発生部102は、図2のように、シード値を基に排他的論理和演算を行うことにより、疑似乱数を生成する。シード値生成部105は、疑似乱数列スキップ部106を用い、図6のように、上記の複数のシード値のうちの1個のシード値の一部のビットに対して排他的論理和演算を行うことにより、上記の複数のシード値のうちの他のシード値を生成する。 The pseudorandom number generator 102 generates pseudorandom numbers by performing an exclusive OR operation based on the seed value as shown in Fig. 2. The seed value generator 105 uses the pseudorandom number sequence skip unit 106 to perform an exclusive OR operation on some bits of one of the multiple seed values as shown in Fig. 6, thereby generating another of the multiple seed values.

疑似乱数列スキップ部106は、複数の1ビット算出部601を有する。複数の1ビット算出部601の各々は、ビット演算部であり、上記の複数のシード値のうちの1個のシード値の一部のビットに対して排他的論理和演算を行うことにより、上記の複数のシード値のうちの他のシード値の1ビットを生成する。 The pseudo-random number sequence skip unit 106 has a plurality of 1-bit calculation units 601. Each of the plurality of 1-bit calculation units 601 is a bit operation unit that performs an exclusive OR operation on some bits of one of the plurality of seed values to generate one bit of another of the plurality of seed values.

なお、疑似乱数列スキップ部106は、上記の複数のシード値のうちの1個のシード値の一部のビットに対して排他的論理和演算を行うことにより、上記の複数のシード値のうちの他のシード値の1ビットを生成する処理を複数回繰り返してもよい。また、疑似乱数列スキップ部106は、上記の複数のシード値のうちの1個のシード値の一部のビットを他のビットに変更することにより、上記の所定数を変更することができる。 The pseudo-random number sequence skip unit 106 may repeat the process of generating 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. The pseudo-random number sequence skip unit 106 can also change the predetermined number by changing some bits of one of the plurality of seed values to other bits.

このように、本実施形態では、シード値生成部105は、シード値保持部103に保持されるシード値の間隔を調整することができる。各シード値で生成が必要な疑似乱数の最大個数は、各ブロックのサイズ等で推定できるので、その最大個数よりもシード値の間隔を広くしておけば、各ブロックで使用される疑似乱数列が衝突することを防ぐことができる。 In this way, in this embodiment, the seed value generation unit 105 can adjust the interval between seed values held in the seed value holding unit 103. The maximum number of pseudo-random numbers that need to be generated for each seed value can be estimated based on the size of each block, etc., so if the interval between seed values is made wider than that maximum number, it is possible to prevent collisions between the pseudo-random number sequences used in each block.

シード値設定部104が最初の1つのシード値を設定すると、シード値生成部105は、疑似乱数列スキップ部106を用いて、疑似乱数列が衝突しない複数のシード値を自動で生成できる。これにより、入力画像を分割した複数のブロックのそれぞれのシード値を外部から設定する必要がなく、各ブロックの画像処理のための疑似乱数の発生を短時間で実施することができる。 When the seed value setting unit 104 sets the first seed value, the seed value generation unit 105 can use the pseudo-random number sequence skip unit 106 to automatically generate multiple seed values that do not collide with each other in the pseudo-random number sequence. This eliminates the need to externally set seed values for each of the multiple blocks into which the input image is divided, and allows pseudo-random numbers for image processing of each block to be generated in a short time.

(第2の実施形態)
第2の実施形態に係る画像処理装置100は、第1実施形態の図1と同じ構成を有するが、疑似乱数発生部102がガロア線形帰還シフトレジスタで構成される。ガロア線形帰還シフトレジスタの場合でも、疑似乱数列スキップ部106は、第1実施形態の図6で示した構成で実現できる。
Second Embodiment
The image processing device 100 according to the second embodiment has the same configuration as that of the first embodiment shown in Fig. 1, but the pseudo-random number generating unit 102 is configured with a Galois linear feedback shift register. Even in the case of the Galois linear feedback shift register, the pseudo-random number sequence skip unit 106 can be realized with the configuration shown in Fig. 6 of the first embodiment.

図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 number generation unit 102 according to the second embodiment. The pseudorandom number generation unit 102 has multiple exclusive OR operators 701 and a shift register 702. The exclusive OR operator 701 inputs 2 bits and outputs a 1-bit result of the exclusive OR of the 2 input bits. The shift register 702 has 31 registers, each of which holds 1 bit, and the entire register holds a 31-bit value. However, several exclusive OR operators 701 are inserted between the 31-bit registers of the shift register 702. The exclusive OR operator 701 takes the exclusive OR of 1 bit input from the previous register and 1 bit output from the output end (right end) of the shift register 702, and outputs 1 bit to the next register. This allows the pseudorandom number generation unit 102 to generate a 31-bit pseudorandom number.

図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 sequence skip unit 106. However, Figure 8 only shows one stage of Figure 5. An input value 801 is the initial 31-bit value of the Galois linear feedback shift register of the pseudo-random number sequence skip unit 106. An exclusive-OR operator 802 performs the same processing as the exclusive-OR operator 701 in Figure 7. A transition value 803 represents the same value as the result of shifting the bits of the shift register 702 in Figure 7.

図8を見ると、本実施形態の疑似乱数列スキップ部106の演算は、排他的論理和演算器802のみであることがわかる。すなわち、第1実施形態の図5で検討した結果と同じように、本実施形態の疑似乱数列スキップ部106も、図6の構成で実装することができる。 As can be seen from FIG. 8, the pseudo-random number sequence skip unit 106 of this embodiment performs only the operation of the exclusive OR operator 802. In other words, similar to the results discussed in FIG. 5 of the first embodiment, the pseudo-random number sequence skip unit 106 of this embodiment can also be implemented with the configuration of FIG. 6.

(第3の実施形態)
第3の実施形態に係る画像処理装置100は、第1の実施形態の図1と同じ構成を有するが、疑似乱数発生部102がXorshiftで構成される。Xorshiftの場合も、疑似乱数列スキップ部106は、第1の実施形態の図6で示した構成で実現できる。
Third Embodiment
The image processing device 100 according to the third embodiment has the same configuration as that of the first embodiment shown in Fig. 1, but the pseudo-random number generating unit 102 is configured with Xorshift. Even in the case of Xorshift, the pseudo-random number sequence skip unit 106 can be realized with the configuration shown in Fig. 6 of the first embodiment.

図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 pseudo-random number generator 102. Here, the variable y is a 32-bit unsigned integer. The variable y represents one value in the pseudo-random number sequence. By the process in Figure 9, the value of the variable y is updated to the value of the next pseudo-random number.

ステップ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 number generation unit 102 takes the exclusive OR of the value of variable y and the value obtained by shifting the value of variable y 13 bits to the left, and assigns the result to variable y. In step S902, the pseudo-random number generation unit 102 takes the exclusive OR of the value of variable y and the value obtained by shifting the value of variable y 17 bits to the right, and assigns the result to variable y. In step S903, the pseudo-random number generation unit 102 takes the exclusive OR of the value of variable y and the value obtained by shifting the value of variable y 5 bits to the left, and assigns the result to variable y. In this way, variable y is generated as a pseudo-random number. Note that in the process of FIG. 9, bits that fall outside the 32-bit range as a result of the left or right shift are ignored.

図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 exclusive OR calculator 1002. Figure 10 is also a diagram showing an example of the configuration of the pseudo-random number generator 102 according to this embodiment.

疑似乱数値1001は、現在の32ビットの疑似乱数値を表している。疑似乱数発生部102は、図10の回路を使って、現在の疑似乱数値1001を基に次回の疑似乱数値1005を求める。排他的論理和演算器1002は、排他的論理和演算を行う。変数1003は、ステップS901の計算結果の変数yを表している。変数1004は、ステップS902の計算結果の変数yを表している。疑似乱数値1005は、ステップS903の計算結果の変数yを表している。 Pseudo-random number value 1001 represents the current 32-bit pseudo-random number value. The pseudo-random number generator 102 uses the circuit in FIG. 10 to determine the next pseudo-random number value 1005 based on the current pseudo-random number value 1001. The exclusive-OR calculator 1002 performs an exclusive-OR operation. The variable 1003 represents the variable y resulting from the calculation in step S901. The variable 1004 represents the variable y resulting from the calculation in step S902. The pseudo-random number value 1005 represents the variable y resulting from the calculation in step S903.

本実施形態に係る疑似乱数列スキップ部106の処理内容は、図10の処理を、図5のように繰り返すことで実現できる。図10を見ると、本実施形態の疑似乱数列スキップ部106の演算は、排他的論理和演算器1002のみであることがわかる。すなわち、第1実施形態と同様に、本実施形態の疑似乱数列スキップ部106も、図6の構成で実装することができる。 The processing contents of the pseudo-random number sequence skip unit 106 according to this embodiment can be realized by repeating the processing of FIG. 10 as shown in FIG. 5. Looking at FIG. 10, it can be seen that the calculation of the pseudo-random number sequence skip unit 106 of this embodiment is performed only by the exclusive OR operator 1002. In other words, like the first embodiment, the pseudo-random number sequence skip unit 106 of this embodiment can also be implemented with the configuration of FIG. 6.

(その他の実施形態)
本発明は、上述の実施形態の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個のシード値を基に生成する疑似乱数列のうちの所定数ずつスキップした複数の疑似乱数を前記複数のシード値として生成し、前記複数のシード値のうちの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に記載の画像処理装置。 The image processing device according to claim 1, characterized in that the predetermined number is a number greater than the maximum number of pseudorandom numbers used by the image processing means for image processing of each block. 前記1個のシード値を設定するシード値設定手段をさらに有することを特徴とする請求項1または2に記載の画像処理装置。 The image processing device according to claim 1 or 2, further comprising a seed value setting means for setting the one seed value. 前記複数のシード値は、前記1個のシード値を含み、
前記シード値設定手段は、前記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ビットを生成する処理を複数回繰り返すことを特徴とする請求項5に記載の画像処理装置。 The image processing device according to claim 5, characterized in that the seed value generating means performs an exclusive OR operation on some bits of one of the plurality of seed values, thereby repeating a process of generating one bit of another of the plurality of seed values multiple times. 前記疑似乱数生成手段は、フィボナッチ線形帰還シフトレジスタを用いて、疑似乱数を生成することを特徴とする請求項1~のいずれか1項に記載の画像処理装置。 8. The image processing device according to claim 1, wherein the pseudo-random number generating means generates the pseudo-random numbers using a Fibonacci linear feedback shift register. 前記疑似乱数生成手段は、ガロア線形帰還シフトレジスタを用いて、疑似乱数を生成することを特徴とする請求項1~のいずれか1項に記載の画像処理装置。 8. The image processing device according to claim 1 , wherein the pseudo-random number generating means generates the pseudo-random numbers using a Galois linear feedback shift register. 前記疑似乱数生成手段は、Xorshiftの疑似乱数を生成することを特徴とする請求項1~のいずれか1項に記載の画像処理装置。 8. The image processing device according to claim 1 , wherein the pseudo-random number generating means generates Xorshift pseudo-random numbers. 1個のシード値を基に、画像を分割した複数のブロックのための複数のシード値を生成するシード値生成ステップと、
前記複数のブロックのための複数のシード値を基に、前記複数のブロックの各々ごとの疑似乱数列を生成する疑似乱数生成ステップと、
前記複数のブロックの各々ごとの疑似乱数列を用いて、前記画像を分割した複数のブロックをそれぞれ画像処理する画像処理ステップとを有し、
前記シード値生成ステップでは、前記疑似乱数生成ステップで前記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 .
コンピュータを、請求項1~1のいずれか1項に記載された画像処理装置の各手段として機能させるためのプログラム。 A program for causing a computer to function as each of the means of the image processing device according to any one of claims 1 to 10 .
JP2020218427A 2020-12-28 2020-12-28 IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD AND PROGRAM FOR IMAGE PROCESSING APPARATUS Active JP7612412B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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