APIは4つある。
そのうち2つは、c/c++標準ライブラリ関数のrand()/srand(int seed)相当の関数bluenoise()/sblunenoise(int seed)である。
もう一つは、0~RAND_MAXよりも広範囲のbluenoiseを返すblunenoiseex()である。初期状態でも0~65535の範囲のbluenoiseを返すのでblunenoiseよりも高精細である。

bluenoiseex()を多用する場合、ブルーノイズマトリクスのサイズを大きくするための追加APIを利用することができる。
最大0~0x07ffffffの範囲のブルーノイズを発生する。
追加APIを呼んだ場合は、ブルーノイズマトリクスは追加APIで指定したフォルダあるファイルを利用する。
追加APIを呼ばない場合は表のファイルは使われず、あらじめ初期化された256×256サイズの表が使われる。

  1. srand(int seed)に対応するsblunenoise(int seed)
  2. ブルーノイズの発生系列を変更する。
    追加APIを呼んだ場合は、初回のbluenoise()/bluenoiseex()/sbluenoise()呼び出し時に、表をファイルから読み込む時間と読み込みメモリが必要となる。
    追加APIを呼ばない場合は、初回呼び出しのオーバーヘッドは無い。
  3. rand()に対応するblunenoise()
  4. 0~RAND_MAXの範囲のブルーノイズを発生する。
    bluenoiseを使う場合は追加APIであるsetblunenoisematrixを呼ぶ必要は無い。
  5. 高精細ブルーノイズを発生するblunenoiseex()
  6. 0~size * sizeの範囲のブルーノイズを発生する。
    追加APIを使わないでもbluenoise()APIよりも高精細のブルーノイズを生成する。
    追加APIを使うことで最大0~0x0fffffffの範囲のブルーノイズ系列の取得が可能。
  7. 追加API
  8. 多くの人は一回も使わない特殊なAPIである。blunenoiseex()APIを使う場合に、ブルーノイズマトリクスのサイズが大きいほど品質が向上する。
    blunenoise()APIを使う場合、このAPIを生成しても、発生するブルーノイズは0~RAND_MAX(0x7fff)の範囲の粗い数列に過ぎない

    ブルーノイズマトリクスという表を利用するため「マトリクス表を保存するフォルダの設定」とマトリクス表のサイズを引数で指定する。
    設定と同時にフォルダに512×512、1024×1024,2048×2048,4096×4096、8192×8192、16384×16384のいずれかのサイズで指定されたマトリクス表を利用する。
    通常の利用では、このAPIの呼び出しは不要である。 「高精細のブルーノイズが必要である」程度の目的であれば1024×1024程度のブルーノイズで十分である。 特殊な目的がある場合(A0超の巨大なプリンターで組織的ディザリングを行う、巨大なマトリクスをブルーノイズ系列で初期化するなど)では2048×2048以上のマトリクスを使うが、ファイルサイズやマトリクス読み込み用のメモリが大きくなる。
    すでに指定サイズのマトリクス表が、設定したフォルダに無い場合は新規に表を作成する。
    表のファイルサイズは以下の通りである。読み込みメモリのサイズはファイルサイズにほぼ等しい。
    元の256×256サイズの表を使う場合はフォルダ名にNULLあるいは""を設定する。
    マトリクスサイズbluenoiseex()が発生する値の範囲ファイルサイズbluenoise()が発生する値の範囲
    256×2560~0x0000ffff(0~ 65,535)埋め込みデータなのでファイルなし0~0x00007fff(0~32767)
    512×5120~0x0003ffff(0~ 262,143)1メガバイト0~0x00007fff(0~32767)
    1024×10240~0x000fffff(0~ 1,048,575)
    百万。乱数系列の代用には十分
    4メガバイト0~0x00007fff(0~32767)
    2048×20480~0x003fffff(0~ 4,194,303)16メガバイト0~0x00007fff(0~32767)
    4096×40960~0x00ffffff(0~ 16,777,215)
    24bitカラー画像の色数
    64メガバイト0~0x00007fff(0~32767)
    8192×81920~0x03ffffff(0~ 67,108,863)
    印刷幅8メートルの特殊なプリンタ(国宝のアーカイブ作成用)で唯一の利用実績
    256メガバイト0~0x00007fff(0~32767)
    16384×163840~0x0fffffff(0~268,435,455)
    この精度を使っている例はゼロ(CYMK用の8192×8192マトリクス4枚に分割などが考えられる)
    1024メガバイト(1ギガバイト)0~0x00007fff(0~32767)