Scanner redirection method with chunk-based image reconstruction using chunk identifiers
A scanner redirection method for a remote desktop system includes the steps of: transmitting to a client computer, a request to acquire a first image from an image capturing device connected to the client computer; in response to receiving image data from the client computer of a first chunk of the first image and an identifier (ID) of the first chunk, storing the image data of the first chunk and the ID of the first chunk in association with each other; in response to receiving an ID from the client computer of a second chunk of the first image without any associated image data, retrieving image data that is stored in association with the ID of the second chunk; and creating the first image using the image data of the first chunk and the retrieved image data that is stored in association with the ID of the second chunk.
1 . A scanner redirection method for a remote desktop system, wherein the remote desktop system includes a client computer and a remote computer, and the client computer has a remote desktop session with the remote computer, and wherein the client computer transmits actions by a user of the client computer to the remote computer to update a remote desktop of the remote desktop session, and the remote computer transmits images of the remote desktop to the client computer, the scanner redirection method comprising:
transmitting, by the remote computer in response to a selection communicated by the client computer to the remote computer, a request to the client computer, the request by the remote computer to the client computer indicating to acquire a first image from a flatbed scanner or sheet-fed scanner, and the flatbed scanner or sheet-fed scanner being connected to the client computer;
in response to receiving image data from the client computer of a first chunk of the first image and an identifier (ID) of the first chunk, storing, by the remote computer, the image data of the first chunk and the ID of the first chunk in association with each other, the first image having been acquired by the client computer from the flatbed scanner or sheet-fed scanner;
in response to receiving an ID from the client computer of a second chunk of the first image without any associated image data, retrieving, by the remote computer, image data of the second chunk that is stored by the remote computer in association with the ID of the second chunk; and
creating, by the remote computer, the first image using the image data of the first chunk and the retrieved image data of the second chunk.
2 . The scanner redirection method of claim 1 , wherein the ID of the first chunk is a hash of the image data of the first chunk, and the ID of the second chunk is a hash of the image data of the second chunk.
3 . The scanner redirection method of claim 1 , wherein the ID of the second chunk and the image data of the second chunk are stored by the remote computer in a first data structure in which the ID of the second chunk is a key, and the image data of the second chunk is a value corresponding to the ID of the second chunk.
4 . The scanner redirection method of claim 1 , wherein the client computer divides the first image into a plurality of chunks including the first chunk and the second chunk.
5 . The scanner redirection method of claim 1 , wherein
the client computer transmits the image data of the first chunk and the ID of the first chunk to the remote computer upon determining that no image data identical to the image data of the first chunk was previously transmitted by the client computer to the remote computer, and
the client computer transmits the ID of the second chunk to the remote computer upon determining that image data identical to the image data of the second chunk was previously transmitted by the client computer to the remote computer.
6 . The scanner redirection method of claim 1 , further comprising:
transmitting, by the remote computer to the client computer, a request to acquire a second image from the flatbed scanner or sheet-fed scanner;
in response to receiving an ID from the client computer of a third chunk of the second image without any associated image data, retrieving, by the remote computer, image data of the third chunk that is stored by the remote computer in association with the ID of the third chunk; and
creating, by the remote computer, the second image using the retrieved image data of the third chunk.
7 . A non-transitory computer-readable medium comprising instructions that are executable in a remote desktop system that includes a client computer and a remote computer, wherein the client computer has a remote desktop session with the remote computer, wherein the client computer transmits actions by a user of the client computer to the remote computer to update a remote desktop of the remote desktop session, and the remote computer transmits images of the remote desktop to the client computer, and wherein the instructions when executed cause the remote desktop system to carry out a scanner redirection method comprising:
transmitting, by the remote computer in response to a selection communicated by the client computer to the remote computer, a request to the client computer, the request by the remote computer to the client computer indicating to acquire a first image from a flatbed scanner or sheet-fed scanner, and the flatbed scanner or sheet-fed scanner being connected to the client computer;
in response to receiving image data from the client computer of a first chunk of the first image and an identifier (ID) of the first chunk, storing, by the remote computer, the image data of the first chunk and the ID of the first chunk in association with each other, the first image having been acquired by the client computer from the flatbed scanner or sheet-fed scanner;
in response to receiving an ID from the client computer of a second chunk of the first image without any associated image data, retrieving, by the remote computer, image data of the second chunk that is stored by the remote computer in association with the ID of the second chunk; and
creating, by the remote computer, the first image using the image data of the first chunk and the retrieved image data of the second chunk.
8 . The non-transitory computer-readable medium of claim 7 , wherein the ID of the first chunk is a hash of the image data of the first chunk, and the ID of the second chunk is a hash of the image data of the second chunk.
9 . The non-transitory computer-readable medium of claim 7 , wherein the ID of the second chunk and the image data of the second chunk are stored by the remote computer in a first data structure in which the ID of the second chunk is a key, and the image data of the second chunk is a value corresponding to the ID of the second chunk.
10 . The non-transitory computer-readable medium of claim 7 , wherein the client computer divides the first image into a plurality of chunks including the first chunk and the second chunk.
11 . The non-transitory computer-readable medium of claim 7 , wherein
the client computer transmits the image data of the first chunk and the ID of the first chunk to the remote computer upon determining that no image data identical to the image data of the first chunk was previously transmitted by the client computer to the remote computer, and
the client computer transmits the ID of the second chunk to the remote computer upon determining that image data identical to the image data of the second chunk was previously transmitted by the client computer to the remote computer.
12 . The non-transitory computer-readable medium of claim 7 , wherein the scanner redirection method further comprises:
transmitting, by the remote computer to the client computer, a request to acquire a second image from the flatbed scanner or sheet-fed scanner;
in response to receiving an ID from the client computer of a third chunk of the second image without any associated image data, retrieving, by the remote computer, image data of the third chunk that is stored by the remote computer in association with the ID of the third chunk; and
creating, by the remote computer, the second image using the retrieved image data of the third chunk.
13 . A remote computer of a remote desktop computer system, wherein the remote desktop computer system includes a client computer and the remote computer, and the client computer has a remote desktop session with the remote computer, wherein the client computer transmits actions by a user of the client computer to the remote computer to update a remote desktop of the remote desktop session, and the remote computer transmits images of the remote desktop to the client computer, and wherein the remote computer is configured to execute on a processor of a hardware platform to:
transmit, in response to a selection communicated by the client computer to the remote computer, a request to the client computer, the request by the remote computer to the client computer indicating to acquire a first image from a flatbed scanner or sheet-fed scanner, and the flatbed scanner or sheet-fed scanner connected to the client computer;
in response to receiving image data from the client computer of a first chunk of the first image and an identifier (ID) of the first chunk, store the image data of the first chunk and the ID of the first chunk in association with each other, the first image having been acquired by the client computer from the flatbed scanner or sheet-fed scanner;
in response to receiving an ID from the client computer of a second chunk of the first image without any associated image data, retrieve image data of the second chunk that is stored by the remote computer in association with the ID of the second chunk; and
create the first image using the image data of the first chunk and the retrieved image data of the second chunk.
14 . The remote computer of claim 13 , wherein the ID of the first chunk is a hash of the image data of the first chunk, and the ID of the second chunk is a hash of the image data of the second chunk.
15 . The remote computer of claim 13 , wherein the ID of the second chunk and the image data of the second chunk are stored by the remote computer in a first data structure in which the ID of the second chunk is a key, and the image data of the second chunk is a value corresponding to the ID of the second chunk.
16 . The remote computer of claim 13 , wherein the client computer divides the first image into a plurality of chunks including the first chunk and the second chunk.
17 . The remote computer of claim 13 , wherein
the client computer transmits the image data of the first chunk and the ID of the first chunk to the remote computer upon determining that no image data identical to the image data of the first chunk was previously transmitted by the client computer to the remote computer, and
the client computer transmits the ID of the second chunk to the remote computer upon determining that image data identical to the image data of the second chunk was previously transmitted by the client computer to the remote computer.
18 . The scanner redirection method of claim 5 , wherein
the client computer stores, in a second data structure, IDs of unique chunks of images acquired by the client computer from the flatbed scanner or sheet-fed scanner,
the client computer determines that no image data identical to the image data of the first chunk was previously transmitted by the client computer by comparing the ID of the first chunk to the IDs of unique chunks of images in the second data structure, and
the client computer determines that image data identical to the image data of the second chunk was previously transmitted by the client computer by locating the ID of the second chunk in the second data structure.
19 . The non-transitory computer-readable medium of claim 11 , wherein
the client computer stores, in a second data structure, IDs of unique chunks of images acquired by the client computer from the flatbed scanner or sheet-fed scanner,
the client computer determines that no image data identical to the image data of the first chunk was previously transmitted by the client computer by comparing the ID of the first chunk to the IDs of unique chunks of images in the second data structure, and
the client computer determines that image data identical to the image data of the second chunk was previously transmitted by the client computer by locating the ID of the second chunk in the second data structure.
20 . The remote computer of claim 17 , wherein
the client computer stores, in a second data structure, IDs of unique chunks of images acquired by the client computer from the flatbed scanner or sheet-fed scanner,
the client computer determines that no image data identical to the image data of the first chunk was previously transmitted by the client computer by comparing the ID of the first chunk to the IDs of unique chunks of images in the second data structure, and
the client computer determines that image data identical to the image data of the second chunk was previously transmitted by the client computer by locating the ID of the second chunk in the second data structure.