CPC G06F 16/5838 (2019.01) [G06F 16/50 (2019.01); G06F 16/56 (2019.01); G06T 1/0007 (2013.01); G06T 1/60 (2013.01); G06T 5/005 (2013.01); G06V 40/168 (2022.01); H04N 19/124 (2014.11); H04N 19/176 (2014.11); H04N 19/186 (2014.11); G06T 2207/10024 (2013.01); G06T 2207/20081 (2013.01); H04N 19/423 (2014.11); H04N 19/86 (2014.11)] | 20 Claims |
1. A method comprising:
obtaining an image composed of color channels including a red color channel, a green color channel, and a blue color channel, wherein each of the color channels represents colors therein with n bits per pixel;
quantizing each of the color channels to be represented by m bits per pixel, wherein m is less than n;
using a space-filling curve to convert each of the color channels as quantized into respective vectors including a red channel vector, a green channel vector, and a blue channel vector, wherein entries in each of the respective vectors are represented by m bits;
generating, for each of the respective vectors, a respective set of m arrays, wherein the m arrays for a particular vector of the respective vectors contain indices of where a fixed value selected from a range of 0 to m−1 is found in the particular vector, and wherein the indices are in increasing order;
applying, to each of the m arrays for each of the respective vectors, differential encoding of the indices therein;
compressing each of the m arrays for each of the respective vectors;
mapping each of the m arrays for each of the respective vectors to blocks of nucleotides, wherein each block contains a unique block identifier representing a location in the m arrays of the respective vectors;
synthesizing the blocks of nucleotides; and
storing, in a DNA-based storage medium, the blocks of nucleotides.
|