# Is amplitude encoding a form of performing QRAM?

I'm still confused about what a QRAM should be. Is amplitude encoding a form of performing QRAM? Or are they related in a way ? What is today's state of the art about QRAM ?

From my perspective, the key differences are:

1. In emplitude encoding, each classical data point is represented by the amplitude of each quantum basis state. For example, a vector $$(a_0,a_1,a_2,a_3)$$ is encoded into a quantum state $$|\psi\rangle = \frac{a_0}{\sqrt{\sum_i{a_i^2}}} |00\rangle + \frac{a_0}{\sqrt{\sum_i{a_i^2}}}|01\rangle + \frac{a_2}{\sqrt{\sum_i{a_i^2}}}|10\rangle + \frac{a_3}{\sqrt{\sum_i{a_i^2}}}|11\rangle$$
2. While in qRAM, it loads binarized form of data through an quantum address in superposition state. For example we have two address qubits ($$n=2$$ and $$N=2^n=4$$), assume $$a_i$$ is stored in 8-bit integer format, then we have 8 data qubits. Then what qRAM does is $$\sum_{j=0}^3 \frac{1}{2}|j\rangle |0\rangle \xrightarrow{qRAM} \sum_{j=0}^3 \frac{1}{2}|j\rangle|\text{bin}(a_j)\rangle$$

Generally, if we want to prepare a specific quantum state, it could be done using both amplitude encoding and qRAM.

In amplitude encoding, you store information in amplitudes of a quantum state. An example of that could be for ex. simple Deutsch-Jozsa algorithm, where the computational result is stored in the amplitude of control qubit, and we process it to retrieve that information.

QRAM is a way of storing binary data and a querying model allowing to answer queries using superposition.

A post on state of the art of quantum memories.

IBM quantum challenge in 2020 had a useful introduction into QRAM and programing it with qiskit.