# Noise generation

In practice, a scene may contain multiple frames, each task of this scene contains some range of frames to be rendered, consequently each worker may render only a subset of these frames. For the simplification purpose, we assume in this section that a scene has only one frame, so the output image is determined uniquely by the scene.

<figure><img src="/files/MEO14drDsG6lowYOlbwW" alt=""><figcaption><p>Noise generation</p></figcaption></figure>

Let $$R$$ denote the rendering process, for each input scene $$G$$, the result of the rendering is an image:

$$
I = \mathcal{R} \left(G\right)
$$

It is important to note that $$I$$ is actually ***never*** computed, neither by the *manager* in the noise embedding (see also the discussion about [frame sampling](/inferix-whitepaper/implementation/adaptive-noise-spreading.md)) nor by *workers* in the frame rendering. The equation above represents only equality.

Similar with invisible watermark schemes in the literature [\[2\]](/inferix-whitepaper/references.md#2), [\[3\]](/inferix-whitepaper/references.md#3), [\[9\]](/inferix-whitepaper/references.md#9) a noise $$W$$ consists in a random vector of atomic watermarks:

$$
W \triangleq \left(w\_1, \dots, w\_n \right)
$$

where $$w\_i , \left(1 \leq i \leq n\right)$$ is independently chosen from some normal probability distribution $$\mathcal{N}\left(\mu, \sigma^2\right)$$. Furthermore, $$w\_i$$ has a special structure depending on where it is introduced in the scene $$G$$. The number $$n$$ of atomic watermark signals is chosen around an experimental trade-off between human perception threshold about the image distortion and the false positive ratio of the noise verification.

Using a uniformly generated task identification number $$J\_{\mathtt{id}}$$, we calculate a verification key which is a vector of the same size as the noise vector $$W$$:

$$
K\_{\mathtt{verif}} \left(S, W, J\_{\mathtt{id}}\right) \triangleq \left( k\_1,\dots,k\_n \right)
$$

that will be used later for the noise verification.

We have discussed that embedding watermarks into $$I$$ cannot help the authentication, then the noise $$W$$ is not embedded into the image $$I$$ but into the scene $$G$$. Let $$\mathcal{E}$$ denote the embedding function, we now create a watermarked scene:

$$
\hat{G} = \mathcal{E} \left(G, W\right)
$$

Finally, $$\hat{G}$$ is sent to *workers* for rendering, that results in a rendered image:

$$
\hat{I} = \mathcal{R} (\hat{G})
$$

If got accepted, namely $$\hat{I}$$ passes the noise verification which will be presented hereafter, this is the image sent back to the user (recall that $$I$$ in the rendering equation is not computed). The encoding function $$\mathcal{E}$$ and the noise $$W$$ are designed so that the distortion of $$\hat{I}$$ against $$I$$ is imperceptible [\[10\]](/inferix-whitepaper/references.md#10), [\[11\]](/inferix-whitepaper/references.md#11) then $$\hat{I}$$ can be authentically used as a result of the graphics rendering.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.inferix.io/inferix-whitepaper/high-level-description/noise-generation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
