A server comprising a patch generator apparatus for generating a patch that includes a series of byte-level instructions to transform an original source image to a target image, the patch generator apparatus configured for: selecting the original source image as a reference source image; selecting a first section at a start of the target image; and until a last section of the target image is processed, iteratively performing the following steps for the selected section of the target image: searching the reference source image for a corresponding section of the reference source image, wherein the corresponding section of the reference source image is a section that is most similar to the selection section of the target image; comparing the selected section of the target image with the corresponding section of the reference source image; generating, based on a difference between the selected section of the target image and the corresponding section of the reference source image, an update instruction to update the reference source image to include the selected section of the target image; adding the update instruction to the patch; applying the update instruction to the reference source image to update the reference source image; and selecting a next section of the target image; wherein by sequentially adding the update instructions corresponding to successive selected sections of the target image starting from the first section target image and ending at the last section of the target image, the patch is generated; wherein the server is further configured for sending the patch to a client device. selecting the original source image as a reference source image; selecting a first section at a start of the target image; and until a last section of the target image is processed, iteratively performing the following steps for the selected section of the target image: searching the reference source image for a corresponding section of the reference source image, wherein the corresponding section of the reference source image is a section that is most similar to the selection section of the target image; comparing the selected section of the target image with the corresponding section of the reference source image; generating, based on a difference between the selected section of the target image and the corresponding section of the reference source image, an update instruction to update the reference source image to include the selected section of the target image; adding the update instruction to the patch; applying the update instruction to the reference source image to update the reference source image; and selecting a next section of the target image; searching the reference source image for a corresponding section of the reference source image, wherein the corresponding section of the reference source image is a section that is most similar to the selection section of the target image; comparing the selected section of the target image with the corresponding section of the reference source image; generating, based on a difference between the selected section of the target image and the corresponding section of the reference source image, an update instruction to update the reference source image to include the selected section of the target image; adding the update instruction to the patch; applying the update instruction to the reference source image to update the reference source image; and selecting a next section of the target image; wherein by sequentially adding the update instructions corresponding to successive selected sections of the target image starting from the first section target image and ending at the last section of the target image, the patch is generated; wherein the server is further configured for sending the patch to a client device.