JP4585949B2 - 乱数生成装置および乱数生成方法 - Google Patents

乱数生成装置および乱数生成方法 Download PDF

Info

Publication number
JP4585949B2
JP4585949B2 JP2005274415A JP2005274415A JP4585949B2 JP 4585949 B2 JP4585949 B2 JP 4585949B2 JP 2005274415 A JP2005274415 A JP 2005274415A JP 2005274415 A JP2005274415 A JP 2005274415A JP 4585949 B2 JP4585949 B2 JP 4585949B2
Authority
JP
Japan
Prior art keywords
cyclic code
random number
code generation
initial value
bit length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005274415A
Other languages
English (en)
Other versions
JP2007087064A (ja
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 JP2005274415A priority Critical patent/JP4585949B2/ja
Publication of JP2007087064A publication Critical patent/JP2007087064A/ja
Application granted granted Critical
Publication of JP4585949B2 publication Critical patent/JP4585949B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)

Description

本発明は、一様分布特性を有するノイズ信号を生成するための乱数生成装置および乱数生成方法に関する。
カラー複写機、カラープリンタなどの画像形成装置においては、カラーイメージスキャナなどの画像読取装置またはコンピュータから入力された画像信号に対して種々の処理が行なわれる。例えば、Log変換、CMYKへの色空間変換、プリンタエンジンの特性に合わせたガンマ変換などの処理が施された後、誤差拡散処理などの擬似中間調処理が行われる。通常、擬似中間調処理においては、量子化雑音によるモアレを目立ち難くするために、意図的に画像データに一様乱数値、正規乱数値などを小雑音として加算する乱数加算処理が行われる。
また、上記正規乱数値を生成するためには、通常、複数の一様乱数を加算して正規乱数を生成するという、中心極限定理が用いられる。例えば12個の12ビット一様乱数を用いる場合、一様乱数をuk(k=0〜11)とすると、正規乱数xは、次の(1)式で算出される。
Figure 0004585949
この正規乱数を生成するために用いられる一様乱数は、通常M系列の巡回符号生成器が用いられる(例えば、特許文献1参照)。
12個の12ビット一様乱数を出力可能な様乱数生成装置について図7を参照しながら説明する。図7は従来の一様乱数を出力可能な乱数生成装置の構成を示すブロック図である。
12個の12ビット一様乱数を出力可能な様乱数生成装置は、図7に示すように、CPUバス701を介してCPU(図示せず)と接続される複数のシードレジスタ702〜707を有する。各シードレジスタ702〜707は、それぞれ、対応する28ビットM系列巡回符号生成器708〜713に初期値(以下、シード値という)を設定する。ここで、シードレジスタ702〜707は、28ビットM系列巡回符号生成器708〜713と同等のビット長である28ビットを有する。28ビット長M系列巡回符号生成器708〜713は、一様乱数のもととなる28ビットの巡回符号を発生する。この巡回符号は、次の(2)式の原始多項式で表される。
28+x+1 …(2)
ここで、28ビット長M系列巡回符号生成器708〜713のビット長は、所望の画素数内で正規乱数の相関が出ないようなビット長すなわち28ビットに決定されている。この28ビットは、A3の用紙サイズに対して1インチあたり1200画素の解像度の画像に対して、1画素間隔で乱数を加算する場合、相関が出ないように正規乱数を発生するために必要なビット長である。
28ビット長M系列巡回符号生成器708〜713のそれぞれは、2つの一様乱数を出力する。28ビット長M系列巡回符号生成器708から出力される一様乱数u[11:0],u[11:0]は、12ビットの一様乱数であり、次の(3)式および(4)式により表される。
[11:0]
=[22,7,11,2,18,1,3,14,23,9,21,10]…(3)
[11:0]
=[5,20,8,16,19,0,12,17,4,6,13,15]…(4)
ここで、上記(3)式の右辺の数字は、28ビット長M系列巡回符号生成器708のビット番号であり、所望のビットを抽出することにより一様乱数が生成される。また、ビットの抽出は、乱数としての特性を良くするために、連続したビット位置にならないよう不連続なビット位置から行われる。上記(4)式で表されるu[11:0]についても同様である。ここで、u[11:0]とu[11:0]は、互いの相関を無くすために、28ビット長M系列巡回符号生成器708から抽出するビット位置が重ならないようにされている。
28ビット長M系列巡回符号生成器709から出力される12ビットの一様乱数u[11:0],u[11:0]は、次の(5)式および(6)式により表される。
[11:0]
=[7,11,2,18,1,3,14,23,9,21,10,22]…(5)
[11:0]
=[20,8,16,19,0,12,17,4,6,13,15,5]…(6)
ここで、上記(5)および(6)式の表記は、上記(3)式と同様である。但し、28ビット長M系列巡回符号生成器709が抽出するビット位置に関して、u[11:0]は、u[11:0]に対してMSB側に1ビットシフトし、u[11:0]でMSBであるビット番号「22」がLSBに割り当てられている。同様に、u[11:0]は、u[11:0]に対してMSB側に1ビットシフトし、u[11:0]でMSBだったビット番号「5」をLSBに割り当てている。このように一様乱数間でM系列巡回符号生成器からの抽出位置を変更することにより、抽出位置の依存性による、一様乱数間の相関を小さくすることができる。
28ビット長M系列巡回符号生成器710から出力される12ビットの一様乱数u[11:0],u[11:0]は、次の(7)および(8)式により表される。
[11:0]
=[11,2,18,1,3,14,23,9,21,10,22,7]…(7)
[11:0]
=[8,16,19,0,12,17,4,6,13,15,5,20]…(8)
ここで、上記(7)および(8)式の表記は、上記(3)式と同様である。但し、28ビット長M系列巡回符号生成器710が抽出するビット位置に関して、u[11:0]はu[11:0]に対してMSB側に1ビットシフトし、u[11:0]でMSBであるビット番号「7」がLSBに割り当てられている。同様に、u[11:0]は、u[11:0]に対してMSB側に1ビットシフトし、u[11:0]でMSBであるビット番号「20」がLSBに割り当てられている。
28ビット長M系列巡回符号生成器711から出力される12ビットの一様乱数u[11:0]、u[11:0]は、次の(9)および(10)式により表される。
[11:0]
=[2,18,1,3,14,23,9,21,10,22,7,11]…(9)
[11:0]
=[16,19,0,12,17,4,6,13,15,5,20,8]…(10)
ここで、上記(9)および(10)式の表記は、上記(3)式と同様である。但し、28ビット長M系列巡回符号生成器711が抽出するビット位置に関して、u[11:0]は、u[11:0]に対してMSB側に1ビットシフトし、u[11:0]でMSBであるビット番号「11」がLSBに割り当てられている。同様に、u[11:0]は、u[11:0]に対してMSB側に1ビットシフトし、u[11:0]でMSBであるビット番号「8」がLSBに割り当てられている。
28ビット長M系列巡回符号生成器712から出力される12ビットの一様乱数u[11:0]、u[11:0]は、次の(11)および(12)式により表される。
[11:0]
=[18,1,3,14,23,9,21,10,22,7,11,2]…(11)
[11:0]
=[19,0,12,17,4,6,13,15,5,20,8,16]…(12)
ここで、上記(11)および(12)式の表記は、上記(3)式と同様である。但し、28ビット長M系列巡回符号生成器712が抽出するビット位置に関して、u[11:0]は、u[11:0]に対してMSB側に1ビットシフトし、u[11:0]でMSBであるビット番号「2」がLSBに割り当てられている。同様に、u[11:0]は、u[11:0]に対してMSB側に1ビットシフトし、u[11:0]でMSBであるビット番号「16」がLSBに割り当てられている。
28ビット長M系列巡回符号生成器713から出力される12ビットの一様乱数u10[11:0],u11[11:0]は、次の(13)および(14)式により表される。
10[11:0]
=[1,3,14,23,9,21,10,22,7,11,2,18]…(13)
11[11:0]
=[0,12,17,4,6,13,15,5,20,8,16,19]…(14)
上記(13)および(14)式の表記は、上記(3)式と同様である。但し、28ビット長M系列巡回符号生成器713が抽出するビット位置に関して、u10[11:0]はu[11:0]に対してMSB側に1ビットシフトし、u[11:0]でMSBであるビット番号「18」がLSBに割り当てられている。同様に、u11[11:0]は、u[11:0]に対してMSB側に1ビットシフトし、u[11:0]でMSBであるビット番号「19」がLSBに割り当てられている。
次に、処理の手順について説明する。まず、CPUバス701を介して各シードレジスタ702〜707に対してシード値が書き込まれる。各シードレジスタ702〜707に対しては、各8ビット長M系列巡回符号生成器708〜713がそれぞれ異なる巡回符号を発生するように、それぞれ異なる値が書き込まれる。これにより、一様乱数u[11:0]〜u11[11:0]間の相関が無くされる。そして、28ビット長M系列巡回符号生成器708〜713は、シードレジスタ702〜707の値に基づいて1画素毎に巡回符号を発生し、発生された巡回符号から12ビットの一様乱数u[11:0]〜u11[11:0]を抽出して出力する。
特開2000−196559号公報
しかしながら、従来の構成においては、複数のM系列巡回符号生成器に対して異なるシード値をCPUなどから設定する必要がある。それととともに、それらの設定値を格納するためのレジスタとして、巡回符号生成器のビット長と同等なビット長を有するレジスタを設ける必要がある。その結果、ハードウエアの規模が大きくなる。例えば図7に示す構成の場合、28x6=168ビット長のレジスタが必要となり、ハードウエアの規模が増大する。
本発明の目的は、中心極限定理を用いて正規乱数を生成する場合に、ハードウエアの規模を増大させることなく、複数の一様乱数を生成することができる乱数生成装置および乱数生成方法を提供することにある。
本発明は、上記目的を達成するため、複数の巡回符号を生成する複数の巡回符号生成手段と、前記複数の巡回符号生成手段にそれぞれ対応するように設けられ、それぞれが、対応する巡回符号生成手段により生成された複数の巡回符号のそれぞれ異なるビット位置から所定数のビットを抽出することによって複数の一様乱数を生成する複数の一様乱数生成手段と、初期値を格納する単一の初期値格納手段と、前記初期値格納手段に格納されている初期値を用いて、前記複数の巡回符号生成手段をそれぞれ初期化させる初期化手段とを備えることを特徴とする乱数生成装置を提供する。
本発明は、上記目的を達成するため、複数の巡回符号を生成する複数の巡回符号生成手段と、前記複数の巡回符号生成手段にそれぞれ対応するように設けられ、それぞれが、対応する巡回符号生成手段により生成された複数の巡回符号のそれぞれ異なるビット位置から所定数のビットを抽出することによって複数の一様乱数を生成する複数の一様乱数生成手段とを用いる乱数生成方法であって、初期値を単一の初期値格納手段に格納する初期値格納工程と、前記初期値格納手段に格納されている初期値を用いて、前記複数の巡回符号生成手段をそれぞれ初期化させる初期化工程とを有することを特徴とする乱数生成方法を提供する。
本発明によれば、中心極限定理を用いて正規乱数を生成する場合に、ハードウエアの規模を増大させることなく、複数の一様乱数を生成することができる。
以下、本発明の実施の形態について図面を参照しながら説明する。
(第1の実施の形態)
図1は本発明の第1の実施の形態に係る乱数生成装置の主要部構成を示すブロック図である。
乱数生成装置は、図1に示すように、CPU(図示せず)とCPU101バスを介して接続されるシードレジスタ102、複数の28ビット長M系列巡回符号生成器103〜108、および28ビット長M系列巡回符号生成器103に対応付けて設けられているORゲート回路112を有する。
シードレジスタ102は、28ビット長M系列巡回符号生成器103に対してシード値を設定するためのレジスタである。ここで、シードレジスタ102は、28ビット長M系列巡回符号生成器103と同等のビット長である28ビットのレジスタである。
28ビット長M系列巡回符号生成器103〜108は、図7に示す28ビット長M系列巡回符号生成器と同等の構成および機能を有する。
ORゲート回路112は、入力されるシード発生期間信号initと巡回符号生成イネーブル信号enableとの論理和を演算し、この演算結果を出力する。ORゲート回路112の出力は、28ビット長M系列巡回符号生成器103に入力される。ここで、シード発生期間信号initは、その値が「0」であるとき、28ビット長M系列巡回符号生成器103に対して28ビット長M系列巡回符号生成器104〜108のシード値を生成するように指示するための信号である。巡回符号生成イネーブル信号enableは、その値が「1」であるときに、28ビット長M系列巡回符号生成器103〜108に対して巡回符号生成動作を行うように指示するための信号である。ここで、シード発生期間信号initまたは巡回符号生成イネーブル信号enableの値が「0」であるとき、28ビット長M系列巡回符号生成器103に対して、28ビット長M系列巡回符号生成器104〜108のシード値を生成するように指示が行われる。これに対し、シード発生期間信号initまたは巡回符号生成イネーブル信号enableの値が「1」であるとき、28ビット長M系列巡回符号生成器103に対して、巡回符号生成動作を行うように指示が行われる。
28ビット長M系列巡回符号生成器103には、ロード信号load0が入力される。このロード信号load0は、28ビット長M系列巡回符号生成器103にシード値をロードするための信号であり、その値が「1」であるときに、28ビット長M系列巡回符号生成器103にシード値がロードされる。また、28ビット長M系列巡回符号生成器103は、上述したように、ORゲート回路112の出力に応じて、28ビット長M系列巡回符号生成器104〜108のシード値を生成し、または巡回符号生成動作を行う。
28ビット長M系列巡回符号生成器104には、シード値をロードするためのロード信号load1が入力され、ロード信号load1の値が「1」であるきに、28ビット長M系列巡回符号生成器103により生成されたシード値がロードされる。また、28ビット長M系列巡回符号生成器104に「1」の巡回符号生成イネーブル信号enableが入力されると、28ビット長M系列巡回符号生成器104は、巡回符号生成動作を行う。
同様に、28ビット長M系列巡回符号生成器105〜108には、シード値をロードするためのロード信号load2〜load5および巡回符号生成イネーブル信号enableが入力される。28ビット長M系列巡回符号生成器105〜108は、入力された信号の値に応じて、28ビット長M系列巡回符号生成器103により生成されたシード値をロードし、または巡回符号生成動作を行う。
各28ビット長M系列巡回符号生成器103〜108は、それぞれ、12ビットの一様乱数u「11:0」〜u11「11:0」を出力する。これらの出力は、図7で説明したものと同等のものであるので、ここでの説明は省略する。
次に、本実施の形態の乱数生成装置の動作について図2を参照しながら説明する。図2は図1の乱数生成装置の動作タイミングを示すタイミングチャートである。ここでは、図2に示す各ブロックの動作タイミングは、システムクロック(図示せず)の立ち上がりに同期するものとして説明する。
時刻t0までにシードレジスタ102に対してシード値が設定されるとすると、このシード値は、処理期間中はシートレジスタ102に保持され続ける。シード値の設定後、時刻t1〜t2の期間において、ロード信号load0の値が「1」となり、28ビット長M系列巡回符号生成器103に対して、シートレジスタ102に保持されているシード値が設定される。
次いで、時刻t2〜t11の期間においては、シード発生期間信号initの値が「1」に設定され、28ビット長M系列巡回符号生成器103は、28ビット長M系列巡回符号生成器104〜108のそれぞれに対するシード値を生成する。
具体的には、時刻t2〜t3の期間中に、28ビット長M系列巡回符号生成器104に対するシード値の生成が行われる。ここで、時刻t2〜t3の期間中においては、シードレジスタ102に与えられたシード値との相関が小さくなるように、M系列巡回符号生成器のビット数より多くの数の巡回符号の発生が行われる。本実施の形態においては、例えば30個の巡回符号が発生される。その後、時刻t3〜t4の期間にロード信号load1の値が「1」となり、28ビット長M系列巡回符号生成器103に保持されている値が、シード値として28ビット長M系列巡回符号生成器104にロードされる。28ビット長M系列巡回符号生成器104にロードされたシード値は、乱数加算処理が行われる時刻t15まで保持される。
次いで、時刻t4〜t5の期間中において、28ビット長M系列巡回符号生成器105に対するシード値の発生が行われる。ここで、時刻t4〜t5の期間中においては、時刻t2〜t3の期間中に28ビット長M系列巡回符号生成器104に与えられるためのシード値の生成と同様に行われる。すなわち、28ビット長M系列巡回符号生成器104に与えられたシード値との相関が小さくなるように、M系列巡回符号生成器のビット数より多く数の巡回符号の発生が行われる。その後、時刻t5〜t6の期間中にロード信号load2の値が「1」となり、28ビット長M系列巡回符号生成器103に保持されている値が、シード値として28ビット長M系列巡回符号生成器105にロードされる。28ビット長M系列巡回符号生成器105にロードされたシード値は、乱数加算処理が行われる時刻t15まで保持される。
次いで、時刻t6〜t7の期間中に28ビット長M系列巡回符号生成器106に対するシード値の発生が行われ、このシード値は、28ビット長M系列巡回符号生成器105に与えられたシード値との相関が小さい値である。その後、時刻t7〜t8の期間中にロード信号load3の値が「1」となり、28ビット長M系列巡回符号生成器103に保持されている値が、シード値として28ビット長M系列巡回符号生成器106にロードされる。28ビット長M系列巡回符号生成器106にロードされたシード値は、乱数加算処理が行われる時刻t15まで保持される。
次いで、時刻t8〜t9の期間中に28ビット長M系列巡回符号生成器107に対するシード値の発生が行われ、このシード値は、28ビット長M系列巡回符号生成器106に与えられたシード値との相関が小さい値である。その後、時刻t9〜t10の期間中にロード信号load4の値が「1」となり、28ビット長M系列巡回符号生成器103に保持されている値が、シード値として28ビット長M系列巡回符号生成器107にロードされる。28ビット長M系列巡回符号生成器107にロードされたシード値は、乱数加算処理が行われる時刻t15まで保持される。
次いで、時刻t10〜t11の期間中に28ビット長M系列巡回符号生成器108に対するシード値の発生が行われ、このシード値は、28ビット長M系列巡回符号生成器107に与えられたシード値との相関が小さい値である。その後、時刻t11〜t12の期間中にロード信号load5の値が「1」となり、28ビット長M系列巡回符号生成器103に保持されている値が、シード値として28ビット長M系列巡回符号生成器108にロードされる。28ビット長M系列巡回符号生成器108にロードされたシード値は、乱数加算処理が行われる時刻t15まで保持される。
このようにして、28ビット長M系列巡回符号生成器103により、28ビット長M系列巡回符号生成器104〜108のそれぞれに対するシード値が生成され、設定される。
次いで、時刻t13〜t14の期間中にロード信号load0の値が「1」となり、28ビット長M系列巡回符号生成器103に対してシード値が再設定される。そして、時刻t15以降において、巡回符号生成イネーブル信号enableの値が「1」となり、各28ビット長M系列巡回符号生成器103〜108から巡回符号が発生され、一様乱数u「11:0」〜u11「11:0」が出力される。
以上より、本実施の形態によれば、28ビット長M系列巡回符号生成器103により、シードレジスタ102に設定されたシード値に基づいて、28ビット長M系列巡回符号生成器104〜108に対するシード値が生成される。これにより、中心極限定理を用いて正規乱数を生成する場合に、ハードウエアの規模を増大させることなく、複数の一様乱数を生成することができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図3および図4を参照しながら説明する。図3は本発明の第2の実施の形態に係る乱数生成装置の構成を示すブロック図、図4は図3の乱数生成装置の動作タイミングを示すタイミングチャートである。
乱数生成装置は、図3に示すように、CPU(図示せず)とCPU301バスを介して接続されるシードレジスタ302、複数の28ビット長M系列巡回符号生成器303〜308、および28ビット長M系列巡回符号生成器304〜308にそれぞれ対応付けて設けられているORゲート回路315〜319を有する。
シードレジスタ302は、各28ビット長M系列巡回符号生成器303〜308に対してシード値を設定するためのレジスタである。ここで、シードレジスタ302は、28ビット長M系列巡回符号生成器303〜308と同等のビット長である28ビットのレジスタである。
各28ビット長M系列巡回符号生成器303〜308には、それぞれ、シード値をロードするためのロード信号loadが入力される。ロード信号loadの値が「1」であるとき、各28ビット長M系列巡回符号生成器303〜308にシード値がロードされる。また、28ビット長M系列巡回符号生成器303には、巡回符号生成イネーブル信号enableが入力される。この巡回符号生成イネーブル信号enableの値が「1」であるときには、28ビット長M系列巡回符号生成器303は、巡回符号生成動作を行う。
ORゲート回路315〜319は、それぞれ、入力される巡回符号生成イネーブル信号enableとシード発生期間信号init0〜init4との論理演算を行い、その演算結果を出力する。ここで、シード発生期間信号init0〜init4は、その値が「1」であるときに、28ビット長M系列巡回符号生成器304〜308のそれぞれに対してシード値を生成するように指示する信号である。
ORゲート回路315〜319の出力は、それぞれ対応する28ビット長M系列巡回符号生成器304〜308に入力される。ここで、シード発生期間信号init0〜init4または巡回符号生成イネーブル信号enableの値が「0」であるとき、各28ビット長M系列巡回符号生成器304〜308は、シード値を生成する。これに対し、シード発生期間信号init0〜init4または巡回符号生成イネーブル信号enableの値が「1」であるとき、各28ビット長M系列巡回符号生成器304〜308は、巡回符号生成動作を行う。そして、各28ビット長M系列巡回符号生成器304〜308は、12ビットの一様乱数u[11:0]〜u11[11:0]を出力する。
次に、本実施の形態の乱数生成装置の動作について図4を参照しながら説明する。ここでは、図4に示す各ブロックの動作タイミングは、システムクロック(図示せず)の立ち上がりに同期するものとして説明する。
時刻t0までにシードレジスタ302に対してシード値が設定され、このシード値は、処理期間中はシードレジスタ302に保持され続ける。その後、時刻t1〜t2の期間中において、ロード信号loadの値が「1」となり、各28ビット長M系列巡回符号生成器303〜308に対してシード値が設定される。28ビット長M系列巡回符号生成器303は、時刻t2〜t8の期間中、シード値を保持する。
次いで、時刻t2〜t3の期間中においては、シード発生期間信号init0の値が「1」となり、28ビット長M系列巡回符号生成器304は、シード値の生成を行う。ここで、このシード値の生成においては、生成するシード値がシードレジスタ302に与えられた値との相関が小さくなるように、M系列巡回符号生成器のビット数より多くの数の巡回符号の発生が行われる。例えば30個の巡回符号が発生される。その後、28ビット長M系列巡回符号生成器304は、時刻t3〜t8の期間中、シード値を保持する。
また、時刻t2〜t4の期間中において、シード発生期間信号init1の値が「1」となり、28ビット長M系列巡回符号生成器305は、シード値の生成を行う。ここで、シード値の生成においては、生成するシード値と時刻t2〜t3の期間中に28ビット長M系列巡回符号生成器304が生成したシード値との相関が小さくなるようにする。そのために、時刻t2〜t3の期間よりM系列巡回符号生成器のビット長以上余分に、巡回符号の発生が行われる。その後、28ビット長M系列巡回符号生成器305は、時刻t4〜t8の期間中、シード値を保持する。
また、時刻t2〜t5の期間中、シード発生期間信号init2の値が「1」となり、28ビット長M系列巡回符号生成器306は、シード値の生成を行う。ここで、シード値の生成は、生成するシード値と時刻t2〜t4の期間中において28ビット長M系列巡回符号生成器305が生成するシード値との相関が小さくなるようにする。そのために、時刻t2〜t4の期間よりM系列巡回符号生成器のビット長以上余分に、巡回符号の発生が行われる。その後、28ビット長M系列巡回符号生成器306は、時刻t5〜t8の期間中、シード値を保持する。
また、時刻t2〜t6の期間中、シード発生期間信init3の値が「1」となり、28ビット長M系列巡回符号生成器307は、シード値の生成を行う。ここで、シード値の生成においては、生成するシード値と時刻t2〜t5の期間中において28ビット長M系列巡回符号生成器306が生成したシード値との相関が小さくなるようにする。そのために、時刻t2〜t5の期間よりM系列巡回符号生成器のビット長以上余分に、巡回符号の発生が行われる。その後、28ビット長M系列巡回符号生成器307は、時刻t6〜t8の期間中、シード値を保持する。
また、時刻t2〜t7の期間中、シード発生期間信init4の値が「1」となり、28ビット長M系列巡回符号生成器308は、シード値の生成を行う。ここで、シード値の生成においては、生成するシード値と時刻t2〜t6の期間中において28ビット長M系列巡回符号生成器36が生成したシード値との相関が小さくなるようにする。そのために、時刻t2〜t6の期間よりM系列巡回符号生成器のビット長以上余分に、巡回符号の発生が行われる。その後、28ビット長M系列巡回符号生成器307は、時刻t7〜t8の期間中、シード値を保持する。
そして、時刻t8以降においては、巡回符号生成イネーブル信号enableの値が「1」となり、各28ビット長M系列巡回符号生成器303〜308は、巡回符号を発生し、一様乱数u[11:0]〜u11[11:0]を出力する。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図5および図6を参照しながら説明する。図5は本発明の第3の実施の形態に係る乱数生成装置の構成を示すブロック図、図6は図5の乱数生成装置の動作タイミングを示すタイミングチャートである。
乱数生成装置は、図5に示すように、CPU(図示せず)とCPU501バスを介して接続されるシードレジスタ502、および複数の28ビット長M系列巡回符号生成器503〜508を有する。
シードレジスタ502は、各28ビット長M系列巡回符号生成器503〜508に対してシード値を設定するためのレジスタである。ここで、シードレジスタ502は、28ビット長M系列巡回符号生成器503〜508と同等のビット長である28ビットのレジスタである。
各28ビット長M系列巡回符号生成器503〜508には、それぞれ、対応するロード信号load0〜load5が入力される。load0〜load5は、シード値をロードするための信号であり、その値が「1」であるとき、対応する28ビット長M系列巡回符号生成器503〜508には、レジスタ502に保持されている値がシード値としてロードされる。また、各28ビット長M系列巡回符号生成器503〜508には、ぞれぞれ、巡回符号生成イネーブル信号enableが入力される。この巡回符号生成イネーブル信号enableの値が「1」であるときには、各28ビット長M系列巡回符号生成器503〜508は、それぞれ、巡回符号生成動作を行い、12ビットの一様乱数u[11:0]〜u11[11:0]を出力する。
次に、本実施の形態の乱数生成装置の動作について図6を参照しながら説明する。ここでは、図6に示す各ブロックの動作タイミングは、システムクロック(図示せず)の立ち上がりに同期するものとして説明する。
時刻t0において、シードレジスタ502に対して28ビット長M系列巡回符号生成器503のシード値が設定される。その後、時刻t1〜t2の期間中、ロード信号load0の値が「1」となり、28ビット長M系列巡回符号生成器503には、シートレジスタ502からシード値がロードされる。このロードされたシード値は、時刻t18まで保持される。
時刻t3において、シードレジスタ502に対して28ビット長M系列巡回符号生成器504のシード値が設定される。その後、時刻t4〜t5の期間中においては、ロード信号load1の値が「1」となり、28ビット長M系列巡回符号生成器504には、レジスタ502からシード値がロードされる。28ビット長M系列巡回符号生成器504は、ロードされたシード値を、時刻t18まで保持する。
時刻t6において、シードレジスタ502に対して28ビット長M系列巡回符号生成器505のシード値が設定される。その後、時刻t7〜t8の期間中においては、ロード信号load2の値が「1」となり、28ビット長M系列巡回符号生成器505には、レジスタ502に設定されたシード値がロードされる。28ビット長M系列巡回符号生成器505は、ロードされたシード値を、時刻t18まで保持する。
時刻t9において、シードレジスタ502に対して28ビット長M系列巡回符号生成器506のシード値が設定される。その後、時刻t10〜t11の期間中においては、ロード信号load3の値が「1」となり、28ビット長M系列巡回符号生成器506には、シードレジスタ502に設定されたシード値がロードされる。28ビット長M系列巡回符号生成器506は、ロードされたシード値を、時刻t18まで保持する。
時刻t12において、シードレジスタ502に対して28ビット長M系列巡回符号生成器507のシード値が設定される。その後、時刻t13〜t14の期間中においては、ロード信号load4の値が「1」となり、28ビット長M系列巡回符号生成器507には、シードレジスタ502に設定されたシード値がロードされる。28ビット長M系列巡回符号生成器507は、ロードされたシード値を、時刻t18まで保持する。
時刻t15において、シードレジスタ502に対して28ビット長M系列巡回符号生成器508のシード値が設定される。その後、時刻t16〜t17の期間中においては、ロード信号load5の値が「1」となり、28ビット長M系列巡回符号生成器508にシード値がロードされる。28ビット長M系列巡回符号生成器508は、ロードされたシード値を、時刻t18まで保持する。
そして、時刻t18以降においては、巡回符号生成イネーブル信号enableの値が「1」となり、各28ビット長M系列巡回符号生成器503〜508は、それぞれ、巡回符号を発生し、一様乱数u[11:0]〜u11[11:0]を出力する。
このように、本実施の形態は、CPUなどにより各28ビット長M系列巡回符号生成器503〜508のそれぞれに対して演算されたシード値が1つのシードレジスタ502を介して、対応する28ビット長M系列巡回符号生成器503〜508にロードされるように構成されている。
上述した各実施の形態によれば、6つのM系列巡回符号生成器に対して、1つのシードレジスタのみを用いて、シード値の設定を行うことが可能なように構成されているので、シードレジスタのハードウエア規模を1/6に抑えることが可能となる。
なお、本実施の形態において、28ビット長M系列巡回符号生成器に関して説明したが、所望の画像領域での乱数の自己相関が問題にならないようなビット長を選択すれば、28ビット以外のビット長のものに対しても本発明を適用することができる。
本発明の第1の実施の形態に係る乱数生成装置の主要部構成を示すブロック図である。 図1の乱数生成装置の動作タイミングを示すタイミングチャートである。 本発明の第2の実施の形態に係る乱数生成装置の構成を示すブロック図である。 図3の乱数生成装置の動作タイミングを示すタイミングチャートである。 本発明の第3の実施の形態に係る乱数生成装置の構成を示すブロック図である。 図5の乱数生成装置の動作タイミングを示すタイミングチャートである。 従来の一様乱数を出力可能な乱数生成装置の構成を示すブロック図である。
符号の説明
101,301,501 CPUバス
102,302,502 シードレジスタ
103〜108,303〜308,503〜508 28ビット長M系列巡回符号生成器
112,315〜319 ORゲート回路

Claims (12)

  1. 複数の巡回符号を生成する複数の巡回符号生成手段と、
    前記複数の巡回符号生成手段にそれぞれ対応するように設けられ、それぞれが、対応する巡回符号生成手段により生成された複数の巡回符号のそれぞれ異なるビット位置から所定数のビットを抽出することによって複数の一様乱数を生成する複数の一様乱数生成手段と、
    初期値を格納する単一の初期値格納手段と、
    前記初期値格納手段に格納されている初期値を用いて、前記複数の巡回符号生成手段をそれぞれ初期化させる初期化手段と
    を備えることを特徴とする乱数生成装置。
  2. 前記一様乱数生成手段のそれぞれは、対応する巡回符号生成手段により生成された複数の巡回符号の不連続なビット位置から所定数のビットを抽出することによって複数の一様乱数を生成することを特徴とする請求項1記載の乱数生成装置。
  3. 前記初期化手段は、前記複数の巡回符号生成手段のうち、特定の1つの巡回符号生成手段に対しては、前記初期値格納手段に格納されている初期値を設定し、他の巡回符号生成手段に対しては、前記特定の1つの巡回符号生成手段により生成された巡回符号を初期値として設定することにより、前記複数の巡回符号生成手段をそれぞれ初期化させることを特徴とする請求項1記載の乱数生成装置。
  4. 前記初期化手段は、前記複数の巡回符号生成手段のうち、特定の1つの巡回符号生成手段に対しては、前記初期値格納手段に格納されている初期値を設定し、他の巡回符号生成手段に対しては、該他の巡回符号生成手段が前記初期値格納手段に格納されている初期値を用いて生成する初期値を設定することにより、前記複数の巡回符号生成手段をそれぞれ初期化させることを特徴とする請求項1記載の乱数生成装置。
  5. 前記初期化手段は、前記初期値格納手段に、前記複数の巡回符号生成手段にそれぞれ対応する初期値を時系列に格納し、対応する初期値を対応する巡回符号生成手段にそれぞれ時系列に設定することにより、前記複数の巡回符号生成手段をそれぞれ初期化させることを特徴とする請求項1記載の乱数生成装置。
  6. 前記巡回符号生成手段のそれぞれに対する初期値は、互いに異なる値であることを特徴とする請求項1ないしのいずれか1つに記載の乱数生成装置。
  7. 複数の巡回符号を生成する複数の巡回符号生成手段と、前記複数の巡回符号生成手段にそれぞれ対応するように設けられ、それぞれが、対応する巡回符号生成手段により生成された複数の巡回符号のそれぞれ異なるビット位置から所定数のビットを抽出することによって複数の一様乱数を生成する複数の一様乱数生成手段とを用いる乱数生成方法であって、
    初期値を単一の初期値格納手段に格納する初期値格納工程と、
    前記初期値格納手段に格納されている初期値を用いて、前記複数の巡回符号生成手段をそれぞれ初期化させる初期化工程と
    を有することを特徴とする乱数生成方法。
  8. 前記一様乱数生成手段のそれぞれは、対応する巡回符号生成手段により生成された複数の巡回符号の不連続なビット位置から所定数のビットを抽出することによって複数の一様乱数を生成することを特徴とする請求項記載の乱数生成方法。
  9. 前記初期化工程では、前記複数の巡回符号生成手段のうち、特定の1つの巡回符号生成手段に対しては、前記初期値格納手段に格納されている初期値を設定し、他の巡回符号生成手段に対しては、前記特定の1つの巡回符号生成手段により生成された巡回符号を初期値として設定することにより、前記複数の巡回符号生成手段をそれぞれ初期化させることを特徴とする請求項記載の乱数生成方法。
  10. 前記初期化工程では、前記複数の巡回符号生成手段のうち、特定の1つの巡回符号生成手段に対しては、前記初期値格納手段に格納されている初期値を設定し、他の巡回符号生成手段に対しては、該他の巡回符号生成手段が前記初期値格納手段に格納されている初期値を用いて生成する初期値を設定することにより、前記複数の巡回符号生成手段をそれぞれ初期化させることを特徴とする請求項記載の乱数生成方法。
  11. 前記初期値格納工程では、前記初期値格納手段に、前記複数の巡回符号生成手段にそれぞれ対応する初期値を時系列に格納し、
    前記初期化工程では、前記初期値格納手段に時系列に格納された初期値を時系列に読み出し、対応する巡回符号生成手段にそれぞれ設定することにより、前記複数の巡回符号生成手段をそれぞれ初期化させることを特徴とする請求項記載の乱数生成方法。
  12. 前記巡回符号生成手段のそれぞれに対する初期値は、互いに異なる値であることを特徴とする請求項ないし11のいずれか1つに記載の乱数生成方法。
JP2005274415A 2005-09-21 2005-09-21 乱数生成装置および乱数生成方法 Expired - Fee Related JP4585949B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005274415A JP4585949B2 (ja) 2005-09-21 2005-09-21 乱数生成装置および乱数生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005274415A JP4585949B2 (ja) 2005-09-21 2005-09-21 乱数生成装置および乱数生成方法

Publications (2)

Publication Number Publication Date
JP2007087064A JP2007087064A (ja) 2007-04-05
JP4585949B2 true JP4585949B2 (ja) 2010-11-24

Family

ID=37973991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005274415A Expired - Fee Related JP4585949B2 (ja) 2005-09-21 2005-09-21 乱数生成装置および乱数生成方法

Country Status (1)

Country Link
JP (1) JP4585949B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7276047B2 (ja) * 2019-09-26 2023-05-18 富士通株式会社 乱数発生装置および乱数発生方法
JP7446923B2 (ja) 2020-06-02 2024-03-11 キオクシア株式会社 半導体装置及び半導体記憶装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06202856A (ja) * 1991-08-23 1994-07-22 Fujitsu Ltd 並列計算機システムにおける乱数列生成処理方式
JP2000196559A (ja) * 1998-12-24 2000-07-14 Jisedai Digital Television Hoso System Kenkyusho:Kk データ伝送方式およびその送受信装置
JP2002368586A (ja) * 2001-06-04 2002-12-20 Canon Inc 符号発生装置および方法
JP2005038229A (ja) * 2003-07-16 2005-02-10 Fujitsu Ltd 乱数発生装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06202856A (ja) * 1991-08-23 1994-07-22 Fujitsu Ltd 並列計算機システムにおける乱数列生成処理方式
JP2000196559A (ja) * 1998-12-24 2000-07-14 Jisedai Digital Television Hoso System Kenkyusho:Kk データ伝送方式およびその送受信装置
JP2002368586A (ja) * 2001-06-04 2002-12-20 Canon Inc 符号発生装置および方法
JP2005038229A (ja) * 2003-07-16 2005-02-10 Fujitsu Ltd 乱数発生装置

Also Published As

Publication number Publication date
JP2007087064A (ja) 2007-04-05

Similar Documents

Publication Publication Date Title
JP4700051B2 (ja) 暗号装置及び暗号方法
US7895492B2 (en) Pseudorandom number generator, semiconductor integrated circuit, pseudorandom number generator control apparatus, pseudorandom number generator control method, and computer product
JP4585949B2 (ja) 乱数生成装置および乱数生成方法
JP4321555B2 (ja) 固体撮像装置および固体撮像装置の信号処理方法
JP3807390B2 (ja) 乱数発生装置
KR101079691B1 (ko) 데이터 정렬 방법과 상기 방법을 수행할 수 있는 장치들
JPH06253134A (ja) 画像処理装置
JP4807401B2 (ja) 画像処理装置、画像形成装置およびプログラム
US6519366B1 (en) Image processing apparatus, image processing method, and memory medium
JP2001251510A (ja) 画像形成装置及びその制御方法
JP2006293429A (ja) 乱数生成装置及び乱数生成方法
JP2007004358A (ja) 正規乱数生成装置
JP2011035801A (ja) 画像処理装置
JP2915445B2 (ja) 画像処理装置
JP2009105695A (ja) 画像形成装置および画像形成システム
JP2011035803A (ja) 画像処理装置
JP2006094160A (ja) 画像処理方法及び画像処理装置並びに画像処理プログラム
JP3075247B2 (ja) カラー電子写真印刷装置
JPH0654173A (ja) 画像処理装置
JP2006166328A (ja) 画像処理装置
JP2009100393A (ja) 画像形成装置および画像形成システム
JPH06113125A (ja) 画像処理装置
JP3684061B2 (ja) 画像処理方法及び装置
JP3903612B2 (ja) 情報量制御回路および制御方法
JP2009090567A (ja) 画像形成装置および画像形成システム

Legal Events

Date Code Title Description
RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20070626

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100621

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100906

R150 Certificate of patent or registration of utility model

Ref document number: 4585949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees