IP Library Granted Patent US 10,509,932
Granted Patent B2
US 10,509,932 · App. 15/784,093 · Granted Dec 17, 2019

Large data transfer using visual codes with feedback confirmation

Inventors: Armin Ebrahimi (Palo Alto, CA); Gaurav Khot (Palo Alto, CA); Bhavya Chauhan (Palo Alto, CA)
Assignee: ShoCard, Inc.
G06K7/1417G09C5/00H04L9/0618H04L9/3236H04L9/3247H04L9/3263H04L2209/38H04L2209/80
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,509,932
App. No.
15/784,093
Granted
Dec 17, 2019
Kind
B2
Abstract

A method of confirming receipt, including iteratively capturing by a receiving device visual codes in a series of visual codes displayed on a sending device. A corresponding captured visual code being from a display block that resulted from a partition of an original data file into display blocks, and wherein each display block is converted to a corresponding string and header including an ordered identifying display block number and a total count of the display blocks. Each corresponding string is converted to a corresponding visual code. Each of the captured visual codes is converted into a corresponding string and a header is read for the corresponding string. Captured display blocks are determined. A confirmation message is generated including information indicating which display blocks have been received. The confirmation message is sent over a wireless communication link to the sending device to reduce the number of visual codes being displayed.

Claims (95)

1. A method of confirming receipt, comprising:

iteratively capturing by a receiving device visual codes in a series of visual codes displayed in a repeating progression on a screen of a sending device, wherein a corresponding captured visual code was generated from a display block that resulted from a partition of an original data file into a series of display blocks of at least a specified size and wherein each display block is converted to a corresponding string having a corresponding header, each corresponding header includes an ordered identifying display block number and a total count of the display blocks in the series of display blocks, wherein each corresponding string is converted to a corresponding visual code;

converting each of the captured visual codes into a corresponding captured string having a corresponding captured header, and reading the corresponding captured header;

determining which display blocks have been received in the series of display blocks;

generating a confirmation message including information indicating which display blocks have been received;

sending the confirmation message over a wireless communication link to the sending device in order to reduce the number of visual codes being displayed by the sending device;

determining a number of groups needed to transfer the total count of display blocks, a group being identified in the corresponding captured header; and

wherein the iteratively capturing includes capturing visual codes in a group of the series of visual codes including the corresponding captured visual code, wherein the series of visual codes is delivered one group at a time such that the visual codes in a corresponding group are displayed in the repeating progression on the screen of the sending device;

wherein the confirmation message includes a first portion for identifying the group;

wherein the confirmation message includes a second portion having bits corresponding to visual codes in the group,

wherein a bit in the second portion is set to a first value when the corresponding captured visual code in the group has been received, and is set to a second value when the corresponding captured visual code in the group has not been received.

2. The method of claim 1 , further comprising:

for each of the captured visual codes, parsing the corresponding captured header of the corresponding captured string and recording the corresponding ordered identifying display block number and converting the corresponding captured string to a corresponding display block;

stopping the iterative capturing when all of the display blocks in the series have been received, as determined by the confirmation message;

coalescing the received display blocks into the original data file, using an order determined by the ordered identifying block numbers;

verifying the integrity of the original data file using a seal that is accessed from a block chain database storing the seal, the seal generated based on the contents of the original data file; and

verifying the validity of the original data file using a certification accessed from the block chain database storing the certification, the certification generated based on the contents of the original data file and the seal, wherein each of the operations is performed by an image-capturing device.

3. The method of claim 1 , further comprising:

iteratively capturing by the receiving device visual codes in a subset of the series of visual codes displayed in the repeating progression on the screen of the sending device, wherein visual codes corresponding to display blocks that have been received by the receiver are removed when generating the subset of the series of visual codes.

4. The method of claim 1 , wherein the generating a confirmation message comprises:

configuring the information to include ordered bits corresponding to the series of display blocks, wherein a first ordered bit corresponds to a first display block in the series of display blocks, wherein a first value for the first ordered bit indicates that the first display block has been received, and a second value for the first ordered bit indicates that the first display block has not been received.

5. The method of claim 1 , wherein the wireless communication link includes Bluetooth, Bluetooth Low Energy (BLE), and near field communication (NFC).

6. The method of claim 1 , wherein the visual code is one of a 2D barcode and QR code.

7. The method of claim 1 , wherein the original data file contains information about a user of the sending device or a document held by the user.

8. The method of claim 1 , wherein the receiving device is one of a mobile device, a smartphone, a hand-held device, and a kiosk.

9. The method of claim 8 , wherein the receiving device is operated by an airline.

10. The method of claim 1 , wherein the sending device is one of a mobile device, a wearable device, a smartphone, and a smartwatch.

11. The method of claim 1 , wherein the original data file is an image file.

12. The method of claim 1 , wherein the original data file contains biometric data.

13. The method of claim 1 , wherein at least one of the sending device and receiving device has no internet connectivity.

14. A non-transitory computer-readable medium storing a computer program for confirming receipt, the computer-readable medium comprising:

program instructions for iteratively capturing by a receiving device visual codes in a series of visual codes displayed in a repeating progression on a screen of a sending device, wherein a corresponding captured visual code was generated from a display block that resulted from a partition of an original data file into a series of display blocks of at least a specified size and wherein each display block is converted to a corresponding string having a corresponding header, each corresponding header includes an ordered identifying display block number and a total count of the display blocks in the series of display blocks, wherein each corresponding string is converted to a corresponding visual code;

program instructions for converting each of the captured visual codes into a corresponding captured string having a corresponding captured header, and reading the corresponding captured;

program instructions for determining which display blocks have been received in the series of display blocks;

program instructions for generating a confirmation message including information indicating which display blocks have been received;

program instructions for sending the confirmation message over a wireless communication link to the sending device in order to reduce the number of visual codes being displayed by the sending device;

program instructions for determining a number of groups needed to transfer the total count of display blocks, a group being identified in the corresponding captured header; and

wherein the program instructions for iteratively capturing includes program instructions for capturing visual codes in a group of the series of visual codes including the corresponding captured visual code, wherein the series of visual codes is delivered one group at a time such that the visual codes in a corresponding group are displayed in the repeating progression on the screen of the sending device;

wherein the confirmation message includes a first portion for identifying the group;

wherein the confirmation message includes a second portion having bits corresponding to visual codes in the group,

wherein a bit in the second portion is set to a first value when the corresponding captured visual code in the group has been received, and is set to a second value when the corresponding captured visual code in the group has not been received.

15. The computer-readable medium of claim 14 , further comprising:

for each of the captured visual codes, program instructions for parsing the corresponding captured header of the corresponding captured string and recording the corresponding ordered identifying display block number and converting the corresponding captured string to a corresponding display block;

program instructions for stopping the iterative capturing when all of the display blocks in the series have been received, as determined by the confirmation message;

program instructions for coalescing the received display blocks into the original data file, using an order determined by the ordered identifying block numbers;

verifying the integrity of the original data file using a seal that is accessed from a block chain database storing the seal, the seal generated based on the contents of the original data file; and

verifying the validity of the original data file using a certification accessed from the block chain database storing the certification, the certification generated based on the contents of the original data file and the seal, wherein each of the operations is performed by an image-capturing device.

16. The computer-readable medium of claim 14 , further comprising:

program instructions for iteratively capturing by the receiving device visual codes in a subset of the series of visual codes displayed in the repeating progression on the screen of the sending device, wherein visual codes corresponding to display blocks that have been received by the receiver are removed when generating the subset of the series of visual codes.

17. The computer-readable medium of claim 14 , wherein the wireless communication link includes Bluetooth, Bluetooth Low Energy (BLE), and near field communication (NFC).

18. The computer-readable medium of claim 14 , wherein the visual code is one of a 2D barcode and QR code.

19. The computer-readable medium of claim 14 , wherein the receiving device is one of a mobile device, a smartphone, a hand-held device, and a kiosk.

20. A computer system comprising:

a processor; and

memory coupled to the processor and having stored therein instructions that, if executed by the computer system, cause the computer system to execute a method for confirming receipt comprising:

iteratively capturing by a receiving device visual codes in a series of visual codes displayed in a repeating progression on a screen of a sending device, wherein a corresponding captured visual code was generated from a display block that resulted from a partition of an original data file into a series of display blocks of at least a specified size and wherein each display block is converted to a corresponding string having a corresponding header, each corresponding header includes an ordered identifying display block number and a total count of the display blocks in the series of display blocks, wherein each corresponding string is converted to a corresponding visual code;

converting each of the captured visual codes into a corresponding captured string having a corresponding captured header, and reading the corresponding captured header;

determining which display blocks have been received in the series of display blocks;

generating a confirmation message including information indicating which display blocks have been received;

sending the confirmation message over a wireless communication link to the sending device in order to reduce the number of visual codes being displayed by the sending device;

determining a number of groups needed to transfer the total count of display blocks, a group being identified in the corresponding captured header; and

wherein the iteratively capturing includes capturing visual codes in a group of the series of visual codes including the corresponding captured visual code, wherein the series of visual codes is delivered one group at a time such that the visual codes in a corresponding group are displayed in the repeating progression on the screen of the sending device;

wherein the confirmation message includes a first portion for identifying the group;

wherein the confirmation message includes a second portion having bits corresponding to visual codes in the group,

wherein a bit in the second portion is set to a first value when the corresponding captured visual code in the group has been received, and is set to a second value when the corresponding captured visual code in the group has not been received.

21. The computer system of claim 20 , wherein the method further comprises:

for each of the captured visual codes, parsing the corresponding captured header of the corresponding captured string and recording the corresponding ordered identifying display block number and converting the corresponding captured string to a corresponding display block;

stopping the iterative capturing when all of the display blocks in the series have been received, as determined by the confirmation message;

coalescing the received display blocks into the original data file, using an order determined by the ordered identifying block numbers;

verifying the integrity of the original data file using a seal that is accessed from a block chain database storing the seal, the seal generated based on the contents of the original data file; and

verifying the validity of the original data file using a certification accessed from the block chain database storing the certification, the certification generated based on the contents of the original data file and the seal, wherein each of the operations is performed by an image-capturing device.

22. The computer system of claim 20 , wherein the method further comprises:

iteratively capturing by the receiving device visual codes in a subset of the series of visual codes displayed in the repeating progression on the screen of the sending device, wherein visual codes corresponding to display blocks that have been received by the receiver are removed when generating the subset of the series of visual codes.

23. A method of confirming receipt, comprising:

iteratively capturing by a receiving device visual codes in a series of visual codes displayed in a repeating progression on a screen of a sending device, wherein a corresponding captured visual code was generated from a display block that resulted from a partition of an original data file into a series of display blocks of at least a specified size and wherein each display block is converted to a corresponding string having a corresponding header, each corresponding header includes an ordered identifying display block number and a total count of the display blocks in the series of display blocks, wherein each corresponding string is converted to a corresponding visual code;

converting each of the captured visual codes into a corresponding captured string having a corresponding captured header, and reading the corresponding captured header;

determining which display blocks have been received in the series of display blocks;

generating a confirmation message including information indicating which display blocks have been received;

displaying the confirmation message for capture by the sending device in order to reduce the number of visual codes being displayed by the sending device;

determining a number of groups needed to transfer the total count of display blocks, a group being identified in the corresponding captured header; and

wherein the iteratively capturing includes capturing visual codes in a group of the series of visual codes including the corresponding captured visual code, wherein the series of visual codes is delivered one group at a time such that the visual codes in a corresponding group are displayed in the repeating progression on the screen of the sending device;

wherein the confirmation message includes a first portion for identifying the group;

wherein the confirmation message includes a second portion having bits corresponding to visual codes in the group,

wherein a bit in the second portion is set to a first value when the corresponding captured visual code in the group has been received, and is set to a second value when the corresponding captured visual code in the group has not been received.

24. The method of claim 23 , further comprising:

for each of the captured visual codes, parsing the corresponding captured header of the corresponding captured string and recording the corresponding ordered identifying display block number and converting the corresponding captured string to a corresponding display block;

stopping the iterative capturing when all of the display blocks in the series have been received, as determined by the confirmation message;

coalescing the received display blocks into the original data file, using an order determined by the ordered identifying block numbers;

verifying the integrity of the original data file using a seal that is accessed from a block chain database storing the seal, the seal generated based on the contents of the original data file; and

verifying the validity of the original data file using a certification accessed from the block chain database storing the certification, the certification generated based on the contents of the original data file and the seal, wherein each of the operations is performed by an image-capturing device.

25. The method of claim 23 , further comprising:

iteratively capturing by the receiving device visual codes in a subset of the series of visual codes displayed in the repeating progression on the screen of the sending device, wherein visual codes corresponding to display blocks that have been received by the receiver are removed when generating the subset of the series of visual codes.

26. The method of claim 23 , wherein the visual code and the confirmation message are one of a 2D barcode and QR code.

27. The method of claim 23 , wherein the receiving device is one of a mobile device, a smartphone, a hand-held device, and a kiosk.

28. The method of claim 23 , wherein the sending device is one of a mobile device, a wearable device, a smartphone, and a smartwatch.

Assignments (10)
RELEASE OF SECURITY INTEREST AT R/F 61703/0988 Recorded Nov 14, 2025
From: BLUE OWL CAPITAL CORPORATION
To: PING IDENTITY CORPORATION
Reel/Frame 073570/0777 →
SECURITY INTEREST Recorded Nov 13, 2025
From: PING IDENTITY CORPORATION; PING IDENTITY INTERNATIONAL, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 073557/0093 →
RELEASE OF SECURITY INTEREST Recorded Oct 19, 2022
From: BANK OF AMERICA, N.A.
To: PING IDENTITY CORPORATION
Reel/Frame 061709/0527 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Oct 18, 2022
From: PING IDENTITY CORPORATION
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 061703/0988 →
SECURITY INTEREST Recorded Nov 23, 2021
From: PING IDENTITY CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 058944/0687 →
RELEASE OF SECURITY INTEREST Recorded Nov 23, 2021
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: SHOCARD, LLC
Reel/Frame 058195/0683 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2020
From: SHOCARD, LLC
To: PING IDENTITY CORPORATION
Reel/Frame 052889/0793 →
CHANGE OF NAME Recorded Apr 17, 2020
From: SHOCARD, INC.
To: SHOCARD, LLC
Reel/Frame 052435/0009 →
PATENT SECURITY AGREEMENT Recorded Apr 1, 2020
From: SHOCARD, LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052291/0082 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: EBRAHIMI, ARMIN; KHOT, GAURAV; CHAUHAN, BHAVYA
To: SHOCARD, INC.
Reel/Frame 043896/0544 →
Continuity (4)
Continuation In Part 15208580 · Jul 12, 2016
Provisional Application 62408699 · Oct 14, 2016
Provisional Application 62304934 · Mar 7, 2016
Related Publication 20180114045A1 · Apr 26, 2018
Cited By (2)
US 12,189,735 US 12,518,278