1. A method comprising:
storing a system code in a first nonvolatile memory;
heating the first nonvolatile memory device and a second nonvolatile memory device to a temperature sufficient to change a state of at least some memory cells in the second nonvolatile memory device during assembly of an electronic system comprising the first and second nonvolatile memory devices; and
copying the system code stored in the first nonvolatile memory into the second nonvolatile memory after the heating.
2. The method of claim 1, wherein the first nonvolatile memory is less vulnerable to temperature-related data alteration than the second nonvolatile memory.
3. The method of claim 2, wherein the first nonvolatile memory comprises a NAND flash memory and wherein the second nonvolatile memory comprises a variable resistance memory.
4. The method of claim 1, further comprising deleting the system code stored in the first nonvolatile memory after copying the system code stored in the first nonvolatile memory into the second nonvolatile memory.
5. The method of claim 1, wherein copying the system code stored in the first nonvolatile memory into the second nonvolatile memory after the heating comprises copying the system code stored in the first nonvolatile memory into the second nonvolatile memory responsive to detecting absence of the system code from the second nonvolatile memory.
6. The method of claim 1, further comprising updating a copy flag indicating that the system code stored in the first nonvolatile memory has been copied into the second nonvolatile memory.
7. The method of claim 6, further comprising foregoing copying the system code stored in the first nonvolatile memory into the second nonvolatile memory responsive to the copy flag indicating that the system code stored in the first nonvolatile memory is copied into the second nonvolatile memory.
8. The method of claim 1, wherein the system code comprises data for initializing the electronic system.
9. The method of claim 1:
wherein copying the system code stored in the first nonvolatile memory into the second nonvolatile memory is preceded by loading a bootloader from a boot memory to a volatile memory of the electronic device and initiating execution of the loaded bootloader in a processor of the electronic device; and
wherein copying the system code stored in the first nonvolatile memory into the second nonvolatile memory comprises the processor executing the bootloader to cause the system code stored in the first nonvolatile memory to be copied into the second nonvolatile memory.
10. The method of claim 9, further comprising the processor executing the system code stored in the second nonvolatile memory.
11. An electronic system comprising:
a first nonvolatile memory configured to store a system code;
a second nonvolatile memory that is more vulnerable to temperature-related data alteration than the first nonvolatile memory;
a control circuit operatively coupled to the first and second memories and configured to copy the system code stored in the first nonvolatile memory into the second nonvolatile memory.
12. The system of claim 11, wherein the first nonvolatile memory comprises a NAND flash memory and wherein the second nonvolatile memory comprises a variable resistance memory
13. The system of claim 11, wherein the control circuit comprises:
a processor operatively coupled to the first and second nonvolatile memories;
a volatile memory operatively coupled to the processor; and
a boot memory operatively coupled to the processor and configured to store a bootloader, the bootloader configured to be executed by the processor to cause copying of the system code stored in the first nonvolatile memory into the second nonvolatile memory.
14. The system of claim 11, wherein the control circuit is configured to operate the system as a solid state drive.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of super-resolving images comprising the steps of:
a) providing multiple low resolution input images of the same scene with unknownknown and irregularregular sub-pixel shifts among images;
b) applying a gross shift estimation algorithm to the input low resolution images to obtain the overall shift of each image with respect to a reference image;
c) aligning the input images according to the gross shift estimates;
d) applying a sub-pixel shift estimation algorithm to the aligned input images to obtain the sub-pixel shift of each image with respect to a reference image; and
e) applying an error-energy reduction algorithm to the input low resolution images with the estimated sub-pixel shifts among images to produce a high-resolution (alias-free) output image.
2. A method of super-resolving images that is to minimize the warping effect in the input images comprising the steps of:
a) providing multiple low resolution input images of the same scene with sub-pixel shifts among images;
b) dividing the input images into sub-patches in the spatial domain, where each sub-patch contains multiple small images;
c) for each sub-patch:
i) applying a gross shift estimation algorithm to obtain the overall shift of each small image with respect to a reference small image;
ii) aligning the small images according to the gross shift estimates;
iii) applying a sub-pixel shift estimation algorithm to the aligned small images to obtain the sub-pixel shift of each small image with respect to a reference small image; and
iv) applying an error-energy reduction algorithm to the small images with the estimated sub-pixel shifts among small images to produce a high-resolution (alias-free) sub-patch image; and
d) combining all super-resolved sub-patches to form the entire high-resolution output image.
3. The method of claim 1 wherein said step of applying a gross shift estimation algorithm to obtain the overall shift of one selected image with a reference image further includes the steps of:
a) providing two input images, denoting the reference image to be the first input image and the selected image the second input image;
b) applying the Fourier transform to the first input image;
c) applying a low-passing windowing to the first Fourier transformed image to obtain the first low-pass windowed image;
d) applying the Fourier transform to the second input image;
e) applying a low-pass windowing to the second Fourier transformed image to obtain the second low-pass windowed image;
f) obtaining the conjugate of the second low-pass windowed image;
g) correlating the first low-pass windowed image with the second conjugated low-pass windowed image;
h) applying the inverse Fourier transform to the said correlated image;
i) finding the peak of the said inverse Fourier transformed correlated image; and
j) outputting the found peak as the spatial overall shift of the selected image with respect to the reference image.
4. The computationally efficient method of claim 1 wherein said step of applying a gross shift estimation algorithm to obtain the overall shift of one selected image with a reference image further includes the steps of:
a) providing two input images, denoting the reference image to be the first input image and the selected image the second input image;
b) applying the Fourier transform to the first input image;
c) applying the Fourier transform to the second input image;
d) obtaining the conjugate of the second Fourier transformed image;
e) correlating the first Fourier transformed image with the second conjugated Fourier transformed image;
f) applying a low-pass windowing to the said correlated image to obtain the low-pass correlated image;
g) applying the inverse Fourier transform to the said low-pass correlated image to obtain the inverse correlated image;
h) finding the peak of the said inverse correlated image; and
i) outputting the found peak as the spatial overall shift of the selected image with respect to the reference image.
5. The method of claim 1 wherein said step of applying a sub-pixel shift estimation algorithm to obtain the sub-pixel shift of one selected image with a reference image further includes the steps of:
a) providing two input low resolution images, denoting the reference image to be the first input image and the selected image the second input image;
b) applying the Fourier transform to the first image;
c) applying a upsample procedure to the first Fourier transformed image to obtain the first upsampled image;
d) applying the Fourier transform to the second image;
e) applying a upsampling procedure to the second Fourier transformed image to obtain the second upsampled image;
f) obtaining the conjugate of the second upsampled image;
g) correlating the first upsampled image with the second conjugated upsampled image;
h) applying a low-pass windowing to the said upsampled correlated image to obtain the low-pass upsampled correlated image;
i) applying the inverse Fourier transform to the said low-pass upsampled correlated image to obtain the inverse upsampled correlated image;
j) finding the peak of the said inverse upsampled correlated image; and
k) outputting the found peak as the sub-pixel shift of the selected image with respect to the reference image.
6. The computationally efficient method of claim 1 wherein said step of applying a sub-pixel shift estimation algorithm to obtain the sub-pixel of one selected image with a reference image further includes the steps of:
a) providing two input low resolution images, denoting the reference image to be the first input image and the selected image the second input image;
b) applying the Fourier transform to the first image;
c) applying the Fourier transform to the second image;
d) obtaining the conjugate of the second Fourier transformed image;
e) correlating the first Fourier transformed image with the second conjugated Fourier transformed image to obtain the correlated image;
f) applying a upsampling procedure to the said correlated image to obtain the upsampled correlated image;
g) applying a low-pass windowing to the said upsampled correlated image to obtain the low-pass upsampled correlated image;
h) applying the inverse Fourier transform to the said low-pass upsampled correlated image to obtain the inverse upsampled correlated image;
i) finding the peak of the said inverse upsampled correlated image; and
j) outputting the found peak as the sub-pixel shift of the selected image with respect to the reference image.
7. The method of claim 1 wherein said step of applying a error-energy reduction algorithm further includes the steps of:
a) initializing a processing array by populating the grids using the input image values and sub-pixel shift estimates;
b) applying the 2D Fourier transform to the said processing array;
c) applying spatial frequency domain constraints to the Fourier transformed processing array to obtain the constrained spatial frequency domain processing array;
d) applying the inverse 2D Fourier transform to the constrained spatial frequency domain processing array to obtain the inverse processing array;
e) applying spatial domain constraints to the said inverse processing array to obtain the constrained spatial domain processing array;
f) checking the error-energy reduction condition;
g) if the stopping criterion is not satisfied, going back to the step of applying the 2D Fourier transform;
h) if the stopping criterion is satisfied, going to the next step;
i) reducing the bandwidth from the processing array to the desired output array; and
j) outputting the super-resolved image with the desired bandwidth.
8. The method of claim 7 wherein said step of initializing a processing array further includes the steps of:
a) providing input low resolution images;
b) providing the estimated sub-pixel shift of each image with respect to a reference image;
c) generating a 2D processing array with a sample spacing smaller than one of the desired high-resolution output image, that is, a 2D processing array with a larger size than the desired high-resolution output image;
d) assigning the known image values to each sub-pixel shifted grid location of the processing array; and
e) assigning zeros to other grid locations.
9. The method of claim 7 wherein said step of applying spatial frequency domain constraints further includes the steps of:
a) replacing zeros outside the desired bandwidth; and
b) applying a window function to avoid ripple effect.
10. The method of claim 7 wherein said step of applying spatial domain constraints further includes the steps of:
a) replacing image values at known grid locations of the processing array with the known original low resolution image values; and
b) keeping image values at other grid locations of the processing array.
11. The method of claim 7 wherein said step of checking the error-energy reduction condition further includes the steps of:
a) defining an error-energy using the constrained spatial domain processing array; and
b) checking if the error-energy is less than a threshold.
12. A method of super-resolution reconstruction that includes the following steps in the following order:
a) providing multiple low resolution input images with sub-pixel shifts among images;
b) dividing input images into sub-sequences;
c) for each sub-sequence, applying the method of super-resolution image reconstruction algorithm to generate a high-resolution (alias-free) output image;
d) re-group the output images to form a new sequence;
e) dividing the new sequence into sub-sequences;
f) for each new sub-sequence, applying the method of super-resolution image reconstruction algorithm to generate a high-resolution (alias-free) output image;
g) checking if the resolution of the desired output image is reached;
h) if the resolution of the desired output image is not reached, going to the step of re-group the said output images to form a new sequence; and
i) if the resolution of the desired output image is reached, outputing the desired high-resolution output image.