Invisible optical identifier for transmitting information between computing devices

An imperceptible optical identifier using alternating frames with specific colors allows secure and aesthetically pleasing information transfer between computing devices, addressing the aesthetic limitations of conventional codes.

DE112015003407B4Active Publication Date: 2025-12-04APPLE INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
DE112015003407
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2015-05-04
Filing Date
2015-07-09
Publication Date
2025-12-04
Estimated Expiration
2035-07-09

AI Technical Summary

Technical Problem

Conventional optical identifiers such as QR codes are not aesthetically pleasing and may limit their use to products where design features are secondary, making them less appealing for integration in visually focused applications.

Method used

The generation and display of an optical identifier on a computing device that is invisible to the human eye but visible to a second computing device, using alternating frames encoded with specific colors that cancel out when averaged, allowing the identifier to be imperceptible to users while being detectable by sensors.

Benefits of technology

Enables secure and aesthetically pleasing information transfer between computing devices by using an imperceptible optical identifier that can be detected by sensors, facilitating device coupling and data sharing without visible disruption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method for transmitting information from a first computing device to a second computing device, comprising: Generating an optical identifier on the first computing device; Generating a first frame of the optical identifier and a second frame of the optical identifier, wherein: a first section of the first frame is encoded in a first color and a second section of the first frame is encoded in a second color; and a first section of the second frame is encoded in a third color and a second section of the second frame is encoded in a fourth color; and Alternating display of the first frame and the second frame at a certain frequency.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED REGISTRATIONS

[0001] This PCT application claims priority over U.S. Non-Preliminary Application No. 14 / 339,754 entitled "Invisible Optical Label for Transmitting Information Between Computing Devices", filed on July 24, 2014, now U.S. Patent No. 9,022,291, granted on May 5, 2015; U.S. Non-Preliminary Application No. 14 / 472,321 entitled "Invisible Optical Label for Transmitting Information Between Computing Devices", filed on August 28, 2014, now U.S. Patent No. 9,022,292, granted on May 5, 2015; and U.S. Non-Preliminary Application No. 14 / 703,165 entitled "Invisible Optical Label for Transmitting Information Between Computing Devices", filed on May 4, 2015. TECHNICAL AREA

[0002] The present disclosure relates to the use of an optical identifier, for example a Quick Response (QR) code, for transmitting information between computing devices. More precisely, the present disclosure relates to the generation and display of an optical identifier on a computing device that is invisible or otherwise imperceptible to the human eye, but visible to a second computing device that is to receive information from the first computing device. BACKGROUND

[0003] DataMatrix codes, Quick Response (QR) codes, barcodes, and similar codes typically allow a computing device to determine various types of information. For example, if a QR code is present on a product, it can be read by a barcode scanner and provide the computing device with information about that product. While these types of codes are useful for providing information about a specific product or device associated with the code, they may not be aesthetically pleasing. For instance, a QR code is usually a square symbol. Information is encoded in the thickness or intensity of the square modules that comprise the symbol. Because these codes may not be visually appealing, their use may be limited to products where design features and appearance are secondary.

[0004] These embodiments were created because of such and other general considerations. Although relatively specific problems have been discussed above, it should be clarified that the embodiments are not intended to be limited to solving the problems mentioned with reference to the technical background. US 2010 / 0 259 549 A1 describes a barcode being generated on a first computer device, the barcode being displayed on a screen associated with the first computer device, and one or more display properties of the barcode being dynamically modified while it is displayed on the first computer device until the barcode is successfully captured (e.g., by a camera) on a second computer device.

[0005] US 2013 / 0089133A1 describes a system for transmitting a stream of information. The system includes an encoding device that uses a spatiotemporal encoding scheme. A receiver, e.g., a mobile phone camera, receives light from the encoding device.

[0006] CN 1 02 750 564 A describes a dynamic two-dimensional code and a decoding method for it. SUMMARY

[0007] This summary is provided to introduce, in simplified form, a selection of concepts that are described in more detail in the section on full description below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it meant to serve as an aid in determining the scope of the claimed subject matter.

[0008] The invention is defined by the features of the independent claims. Preferred advantageous embodiments are defined by the sub-features of the dependent claims. Embodiments of the present disclosure provide a method for transferring information between a first computing device and a second computing device. The method includes generating an optical identifier on the first computing device. In embodiments, the optical identifier can be a machine-readable code, a one- or two-dimensional information symbol, and the like. Non-limiting examples include a DataMatrix code, a barcode, a QR code, and the like. In embodiments, the optical identifier is color-coded and is displayed on a screen of the first computing device in such a way that the optical identifier is not visible to a user when displayed.More precisely, the optical identifier is color-coded and displayed in alternating frames when the optical identifier is output on the display of the first computing device.

[0009] For example, a first frame of the optical identifier is encoded using a first set of colors, and a second frame of the optical identifier is encoded using a second set of colors. More precisely, a first section of the first frame of the optical identifier is encoded in a first color, and a second

[0010] A portion of the first frame of the optical identifier is encoded in a second color. Furthermore, a first portion of the second frame of the optical identifier is encoded in a third color, and a second portion of the second frame of the optical identifier is encoded in a fourth color. As explained below, the first and third colors shift relative to each other, and the second and fourth colors shift relative to each other. When the first computing device displays the alternating frames at a certain frequency, the colors of the encoded optical identifier consequently cancel each other out, and the optical identifier becomes imperceptible to a user of the first computing device.

[0011] This document also discloses a method for coupling a first device with a second device. The method for coupling the first device with the second device involves capturing alternating frames of an optical identifier displayed on the first device. In embodiments, the alternating frames of the optical identifier are displayed at a first frequency. Furthermore, the alternating frames of the optical identifier are captured by the second device at a second frequency. In embodiments, the second frequency may be lower than twice the cycle frequency. Once the optical identifier has been captured by the second device, the second device processes the captured alternating frames to determine and reconstruct the originally generated optical identifier.The simulated optical identifier can then be used to couple the second device with the first device. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figures 1A-1B show examples of computing devices that can be used to transmit data using the optical identifier disclosed in the embodiments of the present disclosure. Fig. Figure 2A shows an example of a background image and an optical identifier displayed on a screen of a computing device according to one or more embodiments of the present disclosure. Fig. Figures 2B-2E show alternating frames of an optical identifier with opposite colors according to one or more embodiments of the present disclosure. Fig. 3 shows a method for generating, encoding and displaying an optical identifier on a display of a computing device according to one or more embodiments of the present disclosure; Fig. Figure 4 shows a method for decoding captured frames of an optical identifier according to one or more embodiments of the present disclosure; Fig. 5 is a block diagram showing examples of physical components of a computing device that can be used with one or more embodiments of the present disclosure; and Fig. Figure 6 is a simplified block diagram of a computing device that can be used with one or more embodiments of the present disclosure. DETAILED DESCRIPTION

[0012] Various embodiments are described in more detail below with reference to the accompanying drawings, which form part thereof and show specific examples. However, embodiments can be implemented in many different forms and should not be understood as limited to those specified herein.

[0013] It is common for a first computing device to need to share information with a second computing device. In one example, it may be necessary to couple a first computing device with a second. Couplering is a process in which two computing devices establish a mutual communication channel. Once the communication channel is established, the individual computing devices can share information with each other. Conventional examples of device coupling include Bluetooth pairing of a mobile phone with, for example, another mobile phone, a car stereo, headphones, and the like. In other examples, multiple computers may be coupled together.

[0014] When one device is paired with another, the first device typically enters a search mode. In search mode, the device looks for another device to which it can connect. Once the desired pairing device has been found and selected, the first device can proceed to authenticate the other device, for example, by requesting a passkey or password.

[0015] As explained in more detail below, embodiments of the present invention are directed towards the use of an optical identifier, for example, a machine-readable code, a one- or two-dimensional information symbol, an Aztec code, a DataMatrix code, a QR code, a barcode, and so on, to transmit information between computing devices. As explained below, this information can be used to couple a first computing device with a second computing device. However, because these optical identifiers are not necessarily perceived as appealing by the respective users, the optical identifiers disclosed herein are not perceptible or otherwise invisible to a user.However, the optical identifier for a sensor associated with the computing device that receives information or that is to be coupled with the first computing device is visible or otherwise perceptible.

[0016] In some embodiments, the optical identifier is generated by a first computing device. The optical identifier contains information that can be used to couple the first computing device with the second computing device. Once the optical identifier has been generated by the first computing device, it is displayed on a screen of the first computing device. For example, the optical identifier can be displayed as a background image or as part of a background image on the screen of the first computing device. As explained below, the optical identifier can also be displayed as two alternating frames at a high rate, for example, sixty frames per second.

[0017] More precisely, each frame is optically encoded in one or more images that appear on the computer's display when the optical identifier is output. For example, each frame is encoded using specific colors which, when averaged, match the displayed images. If the frames of the optical identifier are displayed in rapid succession, the colors of the individual frames consequently cancel each other out.

[0018] As explained in more detail below, the optical identifier patterns are encoded in a chrominance space, while the luminance of each frame remains constant. Since the human eye is more sensitive to luminance than to chrominance, changes in the chrominance space are not, or only with great difficulty, perceived by a user.

[0019] Since the optical identifier is displayed on the screen of the first computing device, a sensor, for example an image sensor, on a second computing device is able to read the optical identifier. More precisely, the sensor of the second computing device detects the alternating frames of the optical identifier. In some embodiments, the detection rate is lower than the signal frequency at which the optical identifier is displayed on the screen of the first computing device. For example, if the frames of the optical identifier are displayed at sixty frames per second on the screen of the first computing device, the second computing device can detect the frames of the optical identifier at a rate of thirty-five frames per second. In other embodiments, the detection rate can be higher than the signal frequency, for example, twice the signal frequency or higher.

[0020] After the frames have been captured over a predetermined period, the second computing device processes the captured images to obtain a representation of the optical identifier and can use this representation to retrieve the information transmitted by the first computing device. For example, if the optical identifier is used to couple the devices, the optical identifier representation can be processed by an optical identifier detector and decoder, and the coupling between the first and second computing devices can then take place.

[0021] Fig. 1A and Fig. Figure 1B shows examples of computing devices 100 and 150, respectively, which can exchange information and / or be coupled to each other using the optical identifier disclosed herein. In certain embodiments, each of the computing devices 100 and 150 can be a portable computing device. For example, the computing devices 100 and 150 can be mobile phones. In another embodiment, the computing devices 100 and 150 can be body-worn computing devices. In still other embodiments, the computing device 100 can be a body-worn computing device and the computing device 150 can be a mobile phone. Even though specific examples have been given, the computing device 100 and the computing device 150 can be different types of computing devices.For example, the computing devices of the present disclosure may be tablet computers, laptop computers, timing devices, computer glasses, navigation devices, sports devices, portable music players, health-supporting devices, medical devices and the like.

[0022] As in Fig. 1A and Fig. As shown in Figure 1B, the computing device 100 can have a display 110. The display 110 can be used to provide or otherwise output information stored in a memory of the computing device 100. For example, the display 110 can present information corresponding to one or more applications running on or stored on the computing device 100. Such applications can include email applications, telephone applications, calendar applications, games applications, timekeeping applications, and the like.

[0023] Furthermore, the display 110 of the computing device 100 can be configured to output an optical identifier in one or more images presented on the display 110. Although a display is specifically mentioned, the optical identifier of the present disclosure can be output on any display mechanism. The optical identifier can be a machine-readable code, a one- or two-dimensional symbol, an Aztec code, a DataMatrix code, a binary code, an n-level code, a QR code, a barcode, or any other optical information, type of code, or digital representation of information that takes the form of a non-alphanumeric pattern. In other embodiments, the optical identifier can consist of alphanumeric patterns.The optical identifier can be used to enable the computing device 100 to share information with or be coupled to the computing device 150, and vice versa. In other embodiments, the optical identifier can be used for authentication and security purposes, to verify purchases of specific products, for software or media verification, and so on.

[0024] The optical identifier of this disclosure can be generated by the computing device 100 in response to a received command. In other embodiments, the optical identifier can be generated by the first computing device 100 when the computing device 100 is placed near or within a certain distance of the computing device 150. The optical identifier can include information necessary to establish a secure connection between the computing device 100 and the computing device 150. For example, the optical identifier can have a specific byte sequence of a defined length, which is used to establish a secure handshake between the computing device 100 and the computing device 150.

[0025] Once the optical identifier has been generated, the computing device 100 can output the optical identifier on the display 110. For example, the optical identifier, or portions of the optical identifier, can be present or embedded in various types of images on the display 110. For example, the optical identifier, or portions of the optical identifier, can be contained or embedded in an icon, a wallpaper or other background image, a lock screen, or any other static or dynamic image displayed on the display 110. Although the optical identifier can be included as part of the images displayed on the display 110, it can also be invisible or otherwise imperceptible to a user, as described below.

[0026] In embodiments, the optical identifier is displayed in alternating frames at a frequency that does not cause flickering on the display 110. For example, the frames of the optical identifier can be output on the display at approximately sixty frames per second, but other frequencies can also be used. Furthermore, each of the alternating frames can be encoded with a specific color. When the frames are output at the specified frequency, the colors of the individual frames therefore cancel each other out or otherwise cause the optical identifier to appear as part of the images currently being output on the display 110. More precisely, each frame can be encoded with a specific set of colors with specific properties, such that the colors from the first frame and the corresponding colors from the second, alternating frame are perceptually neutral when averaged by the human eye.

[0027] Once the optical identifier has been displayed on the screen 110, the computing device 150 can be positioned relative to the screen 110 such that a sensor 160 associated with the computing device 150 can detect the alternating frames of the optical identifier displayed on the screen 110. In embodiments, the sensor 160 can be an image sensor, such as a camera or other such device, which enables the computing device 150 to detect the alternating frames of the optical identifier.

[0028] The sensor 160 can capture the alternating frames of the optical identifier at a frame rate lower than the frequency at which the frames of the optical identifier are displayed. For example, if the alternating frames of the optical identifier are displayed at sixty frames per second, the sensor 160 can capture the frames at between approximately twenty and forty frames per second. In another embodiment, the sensor 160 can capture the alternating frames of the optical identifier at a frame rate equal to or substantially equal to the frequency at which the frames of the optical identifier are displayed.

[0029] In yet another embodiment, the sensor 160 of the computing device 150 can detect the alternating frames of the optical identifier at a frame rate higher than the frequency at which the frames of the optical identifier are displayed on the display 110 of the computing device 100. For example, if the frames of the optical identifier are displayed at sixty frames per second, then the sensor 160 of the computing device 150 can detect the frames of the optical identifier at a frequency of sixty-one frames per second, sixty-two frames per second, or even one hundred and twenty frames per second, and so on.

[0030] After the frames of the optical identifier have been captured by sensor 160 of computing device 150, the sequence of captured images is processed and decoded. More precisely, the computing device processes the captured images to reconstruct the optical identifier originally generated by computing device 100. For example, if the original optical identifier were a QR code consisting of dark squares on a light background (or light squares on a dark background), then computing device 150 would reconstruct a copy of the originally generated QR code. Once the optical identifier has been reconstructed, the reconstructed optical identifier can be provided to an optical identifier decoder and used to couple computing device 100 with computing device 150.

[0031] Even if this is in Fig. 1A and Fig. Not shown in Figure 1B, computing device 100 and computing device 150 may include additional sensors and other components. For example, each computing device may include a microphone, a processor, memory, a haptic actuator, a light source, and other such components. These specific components, as well as other components of an example computing device, are described below with reference to Fig. 5 and Fig. Figure 6 shows that in embodiments, each computing device 100 and 150 can have several components of the same or a similar type. For example, the computing device 100 can have several sensors, such as several cameras, several processors, and the like.

[0032] Furthermore, the computing device 100 and the computing device 150 may include other components not shown or described above. For example, the computing device 100 may include a keyboard or other input mechanism. The computing device 100 may also include one or more components that enable it to connect to the Internet and / or access one or more remote databases or storage devices. The computing device 100 may also enable communication via wireless media, such as acoustic, radio frequency (RF), infrared, and other wireless media.Such communication channels can enable the Computing Device 100 and the Computing Device 150 to connect and communicate remotely with each other or with one or more additional devices, such as a laptop computer, a tablet computer, a personal digital assistant, a portable music player, speakers and / or headphones, and the like.

[0033] The computing device 100 and the computing device 150 can also be configured to provide haptic output to alert a user of each computing device to a specific state of the computing device. For example, the computing device 100 can provide haptic output, a visual message, an audible message, or a combination thereof to alert a user that the computing device has generated and is displaying an optical identifier. Similarly, the computing device 150 can be configured to output similar messages when the coupling between the devices has been completed.

[0034] Fig. Figure 1B shows an alternative embodiment in which the computing device 100 and the computing device 150 can be coupled to each other using the optical identifier of the present disclosure. As in Fig. As shown in Figure 1B, the computing device 100 can have a display 110, as described above. Likewise, the computing device 150 can have a display 180. Like the computing device 100, the computing device 150 can be configured to generate an optical identifier and display it on the display 180. In embodiments, the optical identifier can be generated, encoded, and displayed on the display 180 as described herein.

[0035] After the optical identifier has been displayed on the display 180, a sensor 120 associated with the computing device 100 can detect the optical identifier displayed on the display 180. Likewise, a sensor 170 associated with the computing device 150 can detect the optical identifier generated by the computing device 100 and displayed on the display 110. In embodiments, the sensor 120 and the sensor 170 can be image sensors, such as a camera or other device, enabling each of the computing devices 100 and 150 to detect an optical output.

[0036] After each of sensors 120 and 170 has captured the frames of the optical identifier provided by the other computing device, computing devices 100 and 150 each process their corresponding captured images. Once the captured images have been processed and each optical identifier has been reconstructed, the optical identifiers can be used to couple computing device 100 with computing device 150, and vice versa.

[0037] In embodiments, each of the computing devices 100 and 150 can be configured to generate and display their respective optical identifiers sequentially. For example, computing device 100 can generate and display its optical identifier at a first time. When the optical identifier is output on the display 110, the sensor 170, associated with computing device 150, can capture the image sequence and reconstruct the optical identifier generated by computing device 100. In embodiments, the display, capture, and reconstruction of the optical identifier can be performed in real time or largely in real time. For example, while computing device 100 is outputting the optical identifier, computing device 150 can read the received optical identifier and forward it to a processor to obtain the information associated with the optical identifier.The computing device 150 can then, at a second time, generate and encode an optical identifier and display it on its screen 180. When the optical identifier is displayed on the screen 180, the sensor 120 can detect the displayed optical identifier and process the detected images, as described herein, to reconstruct the optical identifier generated by the computing device 150. In other embodiments, the mutual coupling of the computing devices 100 and 150 can occur simultaneously or substantially simultaneously.

[0038] Fig. Figure 2A shows an example of a background image 205 displayed on a screen of a computing device according to one or more embodiments of the present disclosure. More precisely, it shows Fig. 2A different frames of an optical identifier 200, which is chroma-encoded, in a background image 205, which is displayed on a screen of a computing device. In embodiments, the optical identifier 200, as described in Fig. Figure 2 shows the optical identifier, which relates to Fig. 1A-1B and Fig. 3-6 is described. Although embodiments disclosed herein discuss chroma space, the processes described herein can also be used with luminance and / or with a combination of chrominance and luminance. However, since the human eye is more sensitive to luminance, the distance from a target value when the colors are shifted (as described below) may be smaller and / or the display frequency of the optical identifier may need to be higher.

[0039] In some embodiments, the optical identifier 200 can be a DataMatrix code, a QR code, a barcode, a one- or two-dimensional symbol, an Aztec code, and the like. In other embodiments, the optical identifier 200 can be a binary code, an n-level code, or any other optical code that can be read by a computing device. Thus, the optical identifier 200 can have light and dark sections and can be arranged in a specific pattern. If the optical identifier 200 is a QR code, for example, the QR code would consist of light squares on a dark background, dark squares on a light background, or other color combinations. In other embodiments, the pattern of the optical identifier 200 and the shapes used in the optical identifier can vary.

[0040] Furthermore, the optical identifier 200 can be static or dynamic with respect to the device that generates it. For example, when a request to generate the optical identifier 200 is received, such as in response to a user request or a request received from another device, the computing device can display an optical identifier 200 that was previously generated or that is constant with respect to the computing device. In another embodiment, the computing device can generate a new optical identifier 200 each time a request is received.

[0041] Once the optical identifier 200 has been generated, the computing device that generated the optical identifier 200 temporarily encodes two different frames of the optical identifier 200 with different colors in a chroma space. More precisely, a first frame 210 of the optical identifier 200 is encoded using temporary chroma coding, such that the dark sections of the optical identifier 200 are encoded using a first color and the light sections of the optical identifier 200 are encoded using a second color. Likewise, a second frame 220 of the optical identifier 200 is temporarily chroma-encoded in a similar manner. For example, the dark sections of the second frame 220 of the optical identifier 200 are chroma-encoded using a third color and the light sections of the second frame 220 of the optical identifier are temporarily chroma-encoded using a fourth color.

[0042] In embodiments, the first and second colors are opposites to the third and fourth colors, respectively. For example, the colors are opposites to each other in every color space that is perceptually relevant, such that their arithmetic mean is at or close to a target value. If the temporary mean of the opposite colors is determined, the temporary mean would be a chroma-free color (e.g., gray). For example, the first and second colors could be blue and magenta, while the third and fourth colors are orange and green. Since blue and orange are opposites to each other, and magenta and green are opposites to each other, the temporary mean of the colors is gray.

[0043] Even if specific colors are mentioned, any color can be used to encode the alternating frames of optical identifier 200, as long as the selected colors are opposite to each other according to a desired psychovisual perception metric. Furthermore, while the temporary mean in the example above is gray, the temporary mean of the selected colors can correspond to any image color. Therefore, if the background image 205, on which optical identifier 200 is placed, is blue, the temporary mean of the opposite colors of the first frame 210 and the second frame 220 is also blue. Consequently, optical identifier 200 is not visible to a user if it is present on image 205, as shown in frame 230.If one section of optical identifier 200 is on a first color and another section of optical identifier 200 is on a second color, the temporary average of each section of optical identifier 200 that overlaps the different colors is calculated accordingly. Thus, optical identifier 200 can be embedded in a static graphic, image, or background, or in a dynamic graphic, image, or background.

[0044] After the first frame 210 and the second frame 220 have been encoded in the manner described above, the frames are alternately displayed. In certain embodiments, the first frame 210 and the second frame 220 are displayed at a rate of approximately sixty frames per second, but other frequencies may also be used. Displaying the alternating frames 210 and 220 causes the optical identifier 200 to align with the background image 205 displayed, or otherwise renders the optical identifier 200 imperceptible to a user, as shown in frame 230.

[0045] Fig. Figures 2B-2E show alternating frames of an optical identifier, such as optical identifier 200, with opposite colors according to one or more embodiments of the present disclosure. More precisely, they show Fig. 2B shows a first frame 250 of an optical identifier with two colors 252 and 254 in a color space. Likewise, it shows Fig. 2C displays a second frame 260 of an optical identifier with two colors 262 and 264 in the color space. Since the first frame 250 and the second frame 260 alternate, color 252 shifts color 262 in a chroma space, as in Fig. 2E is shown. Similarly, color 254 shifts color 264 in a chroma color space, as also shown in Fig. 2E is shown. The resulting image 270 is made up of alternating frames 250 and 260, as shown in Fig. The 2D version shows a chroma-free color, 272.

[0046] For example, all colors in a color space are opposite to each other along another axis of the color space, as in Fig. Figure 2E is shown. Consequently, the temporary mean of colors 252, 254, 262, and 264 yields a chroma-free color 272. Although the temporary mean discussed above is a chroma-free color, the temporary mean of the four colors can be any color exhibiting different chrominance and / or luminance values. For example, the temporary mean of the four colors can be any color that corresponds to different colors of displayed images output on the display of a computing device.

[0047] Fig. Figure 3 shows a method 300 for generating, encoding, and displaying an optical identifier according to one or more embodiments of the present disclosure. In embodiments, the method 300 for generating, encoding, and displaying the above with reference to Fig. The optical identifier shown and described in 1A-2E will be used.

[0048] Method 300 begins when an optical identifier 310 is generated. In embodiments, the optical identifier can be generated by a first computing device that is to transmit information to or be coupled with a second computing device. For example, the optical identifier can be used to transmit information in a way that is not perceptible to humans but perceptible to machines. The optical identifier can be generated in response to a received command. The received command can come from a user, an application, or the second device. For example, if the first device is positioned within a certain distance of the second device, the first device can receive a request to generate an optical identifier. In another embodiment, the first device can receive a pair of commands from a user or an application.When such a command is received, the optical identifier can be generated.

[0049] In certain embodiments, the optical identifier can be a machine-readable code, a one- or two-dimensional information symbol, a DataMatrix code, a barcode, a QR code, or another optical representation of data, as described above. The optical identifier can be generated using a variety of different patterns, colors, and so on.

[0050] Once the optical identifier has been generated, the process proceeds to step 320, in which two frames of the optical identifier are temporarily chroma-encoded. More precisely, the optical identifier is split into two distinct frames. Each of these frames undergoes a temporary encoding process. For example, the first frame of the optical identifier is encoded using temporary chroma encoding, so that the first section of the first frame is encoded using a first color. Furthermore, the second section of the first frame is encoded using a second color.Similarly, a second frame of the optical identifier undergoes a temporary chroma coding process, in which a first section of the second frame of the optical identifier is chroma-coded using a third color. Additionally, a second section of the second frame of the optical encoder is encoded using a fourth color.

[0051] In some embodiments, the first and second colors are opposite to the third and fourth colors, respectively. If the temporary average of the first and third colors is calculated, the resulting temporary average would be a chroma-free color. Similarly, if the temporary average of the second and fourth colors is calculated, the resulting temporary average would also be a chroma-free color (e.g., gray).

[0052] Extending the example, the first and second colors could be blue and magenta, while the third and fourth could be orange and green. Blue and orange are opposites to each other in chroma space, and magenta and green are also opposites to each other in chroma space. Thus, the temporary mean of the colors is gray.

[0053] Even though the temporary mean discussed above is a chroma-free color, the temporary mean of each of the four colors can be any color. More precisely, the temporary mean of the four colors can be any color that corresponds to different colors of displayed images output on the display of a computing device.

[0054] For example, if the image on which the optical identifier is to be encoded is blue, then the temporary average of the opposite colors of the first and second frames can also be blue. Furthermore, if a section of the optical identifier is to be encoded in a multi-colored image, each section of the optical identifier will have a temporary average that corresponds to the overlapping section of the image. Consequently, the optical identifier can be embedded in a static graphic, image, or background, or in a dynamic graphic, image, or background, such as an animation, slideshow, streaming medium, or other similar content.

[0055] After the first and second frames have been encoded, the process continues to step 330, in which the first and second frames are alternately displayed on a screen of the computing device. In some embodiments, the frequency of the displayed frames is approximately sixty frames per second. However, the frequency can be higher or lower than sixty frames per second.

[0056] In some embodiments, the frequency rate can be any rate that allows the alternating frames of the optical identifier to align with the displayed images so that they are imperceptible to a user. Furthermore, the speed or frequency at which the frames are displayed can be selected based on a speed that reduces or otherwise eliminates any flickering that may be caused by the frame changes.

[0057] Fig. Figure 4 shows a method 400 for decoding captured frames of an optical identifier according to one or more embodiments of the present disclosure. In embodiments, the method 400 can be used by an electronic device 100 and / or an electronic device 150, which, with respect to Fig. 1A and Fig. 1B is shown and described. Furthermore, method 400 can be used to create a coded optical identifier, for example, the one described above with reference to Fig. 2. to receive and decode the optical identifier 200 described above. Furthermore, method 400 can be used to receive and decode an optical identifier, for example, an optical identifier that relates to method 300, which relates to Fig. 3 is described, generated, encoded and displayed, to be decoded.

[0058] Method 400 begins when a computing device, which is to be coupled to a source computing device, receives or captures a sequence of images from the source computing device 410. The source computing device may be a timekeeping device, a mobile phone, a tablet computer, a personal digital assistant, a health-assisted device, and so on. Furthermore, the source computing device may display a coded optical identifier that has been temporarily chroma-encoded so that the optical identifier is not perceptible to a user but is perceptible to an image sensor of the computing device.

[0059] To receive the image provided by the source device, the computing device, more precisely its image sensor, can be arranged in an orientation that enables the screen to capture a display from the source computing device. As described above, the source computing device's display can output or otherwise display the coded optical identifier. In embodiments, the coded optical identifier is displayed as alternating frames with dislocation colors. Furthermore, the coded optical identifier is displayed at a specific frequency, for example, sixty frames per second.

[0060] In embodiments, the image sensor, which is directed towards the display of the source computing device, detects the displayed image sequence (e.g. the alternating frames of the optical identifier) ​​at a frequency that is lower than the frequency at which the alternating frames of the optical identifier are displayed.

[0061] Extending the above example, if the frames of the coded optical identifier are displayed at a frequency of sixty frames per second, the image sensor can capture the image sequence at a rate of thirty-five frames per second. While a specific capture rate is discussed, in some embodiments the capture rate can be between twenty and forty frames per second, but other capture rates are also possible. In some embodiments, the image sequence is captured over a time t. After the image has been captured over time t, the optical identifier can be processed and reconstructed by the computing device.

[0062] In some cases, the image captured by the computer's image sensor may be distorted due to a number of factors. For example, the distance between the source and capture computers can affect the level of noise, specifically chroma noise, that occurs during capture (e.g., induced colors in the captured image that can distort the signal). Moiré patterns can also distort the signal. Other factors that can affect the level of noise present in the captured image sequence include the angle between the source and capture computers, the resolution of the source computer's display, the resolution of the capture computer's image sensor, and so on.

[0063] To account for this additional noise, certain embodiments provide for a filtering process for each detected frequency. Since the temporary characteristics of noise differ from the temporary characteristics of the optical identifier received by the computing device, a filtering process can be used to determine which signals are noise and which represent the optical identifier. More precisely, the temporary characteristics of each detected image, or more precisely, the temporary characteristics of each pixel in each detected image, can be compared with an expected, predicted, or actual temporary characteristic of the received image. If the detected temporary characteristic of an image, or the detected temporary characteristic of a pixel in the image, is not within a certain threshold, that particular image or pixels in the image can be ignored.In other embodiments, the specific image or pixel can be modified, further processed, or included in an analysis of future captured images or pixels.

[0064] After the image has been captured over a specific period t, the process of procedure 400 continues to step 420, in which the temporary average of the sequence of captured images is determined. In embodiments, the calculated temporary average of the image sequence provides a representation of the background image(s) into which the optical identifier is encoded.

[0065] The process then continues to step 430, in which the temporary average of the image sequence is subtracted from the sequence of captured images. This calculation yields a representation of the changes in the captured image sequence. Thus, one result of this step is a representation of the chroma-coded optical identifier that has been encoded in the background image of the source computing device.

[0066] Step 440 involves performing a color space conversion on the representation of the optical identifier. More precisely, the image sensor of the processing unit may be designed to capture the image sequence from the source processing unit using an RGB format. However, to accurately reconstruct the originally generated optical identifier, the luminance and chrominance in the representation of the optical identifier captured in the image sequence must be separated. Such separation may not occur in an RGB format. Therefore, a color space conversion takes place, in which the RGB values ​​of the optical identifier representation are converted to a YCbCr format or another format in which luminance and chrominance can be separated.

[0067] After the color space conversion has taken place, the process continues to step 450, where it is determined which quadrants in a two-dimensional chroma plane are occupied by the individual pixels of the optical identifier representation. Once the arrangement of each pixel has been determined, it is further determined whether the colors of the individual pixels are further than a threshold distance from the color mean of the received image. More precisely, the color vector of each pixel is analyzed to determine how far the pixels are from the origin of the chroma space. If the arrangement of the pixels equals or exceeds the threshold distance from the origin of the chroma space, and if the pixel lies in the quadrant of the chroma space in which it was encoded, each pixel is assigned an encoded value. In some cases, the encoded value is either zero or one.As a result of this process, the representation of the optical identifier is now a noisy representation of the originally generated optical identifier (e.g., a noisy QR code consisting of black squares on a white background).

[0068] The process then continues to step 460, in which a temporary integration process is performed on the representation of the originally generated optical identifier. In this process, the time-averaged signal t of each pixel of the noisy representation of the originally generated optical identifier is determined.

[0069] Once the process is complete, the workflow proceeds to step 470, where a binary determination is made regarding the final representation of the optical identifier. For example, if the original optical identifier was a QR code, then each pixel in the representation of the optical identifier is analyzed, and it is determined whether the respective pixel is a white section or a black section of the QR code.

[0070] Once the original optical identifier has been reconstructed, the reconstructed optical identifier is provided to an optical identifier detector of the computing device 480. After the optical identifier has been provided to and read by the optical identifier detector, the computing device can be coupled to the source computing device.

[0071] Fig. Figure 5 is a block diagram showing examples of components, for example, hardware components of a computing device 500 according to one or more embodiments of the present disclosure. In certain embodiments, the computing device 500 may resemble the computing device 100 and the computing device 150 described above with reference to Fig. 1A and Fig. 1B were described. Although various components of the computing device 500 are shown, connections and communication channels between the individual components have been omitted for the sake of simplicity.

[0072] In a basic configuration, the computing device 500 may comprise at least one processor 505 and associated memory 510. The memory 510 may include, among other things, volatile memory, such as read / write memory, non-volatile memory, such as read-only memory, flash memory, or any combination thereof. The memory 510 may store an operating system 515 and one or more program modules 520 suitable for executing software applications 555. The operating system 515 may be configured to control the computing device 500 and / or one or more software applications 555 executed by the operating system 515. The program modules 520 or the software applications 555 may include modules and programs for generating, encoding, and displaying the optical identifiers disclosed herein.Furthermore, the program modules 520 and the software applications 555 can enable the computing device 500 to read and process a coded optical identifier as described above.

[0073] The computing device 500 may have additional features or functions beyond those expressly described herein. For example, the computing device 500 may also have additional data storage devices, which may be removable or non-removable, such as magnetic disks, optical disks, or tape storage. Examples of storage devices are given in Fig. 5 shown using a removable storage device 525 and a non-removable storage device 530.

[0074] In certain embodiments, various program modules and data files can be stored in the system memory 510. The program modules 520 and the processor 505 can perform processes that include one or more of the steps of procedures 300 and 400, which are described with reference to Fig. 3 and Fig. 4 have been shown and described.

[0075] As also in Fig. As shown in Figure 5, the computing device 500 can include one or more input devices 535. The input devices 535 can include a keyboard, a mouse, a pen or stylus, a sound input device, a touch input device, and the like. The computing device 500 can also include one or more output devices 540. The output devices 540 can include a display, one or more loudspeakers, a printer, and the like. The computing device 500 can also include one or more haptic actuators 560, which are used to provide the haptic feedback as described herein. As discussed above, the computing device 500 can also include one or more sensors 565. The sensors can include, among others, an image sensor, an accelerometer, an ambient light sensor, a gyroscope, a magnetometer, and the like.

[0076] The computing device 500 also includes communication links 545, which facilitate communication with additional computing devices 550. Such communication links 545 can include RF transmitters, a receiver and / or a transceiver circuit, Universal Serial Bus (USB) communication, parallel ports and / or serial ports.

[0077] As used herein, the term computer-readable media can include computer storage media. Computer storage media can include volatile and non-volatile media and / or removable and non-removable media for storing information. Examples include computer-readable instructions, data structures, and program modules. Memory 510, Removable Storage Device 525, and Non-Removable Storage Device 530 are each examples of computer storage media.Computer storage media may include RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other storage technology, CD-ROM, Digital Versatile Discs (DVD) or other optical storage media, magnetic cartridges, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other products that can be used to store information and that can be accessed by the Computing Device 500. Any of these computer storage media may be part of the Computing Device 500.

[0078] Fig. Figure 6 shows another example of a computing device 600 according to one or more embodiments of the present disclosure. Fig. 6 is a block diagram that shows the architecture of a computing device such as the one with reference to Fig. 1A shown and described calculating device 100 or the one with reference to Fig.Figure 1B shows the computing device 150. Although various components of the device 600 are shown, connections and communication channels between the individual components have been omitted for the sake of simplicity.

[0079] In certain embodiments, the System 605 can execute one or more applications or programs. These applications or programs include optical identifier generators, optical identifier detectors, browser applications, email applications, calendar applications, address book applications, messaging applications, games, media playback applications, and the like.

[0080] These programs, as well as other programs not specifically discussed above, can be loaded into a memory 610. Furthermore, these programs can be executed by or in conjunction with the operating system 615. Examples of additional application programs include telephone programs, email programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, internet browser programs, messaging programs, and the like. The system 605 can also include a non-volatile memory area 620 within the memory 610. The non-volatile memory area 620 can be used to store persistent information. In certain embodiments, the application programs can use and store information in the non-volatile memory area 620.A synchronization application or synchronization module (not shown) may also be included in the system 605 to synchronize applications or data located on the device 600 with another computer or device. In embodiments, the device 600 includes a power source 625. The power source 625 may be a battery, a solar cell, or the like, which supplies power to the components shown individually. The power source 625 may also include an external power source, such as an AC adapter or other such connector, which supplements or recharges the batteries. The device 600 may also include a radio device 630, which performs the function of sending and receiving radio frequency transmissions. Furthermore, transmissions received by the radio device 630 may be forwarded to the application programs disclosed herein in the operating system 615.Likewise, transmissions from the application programs to the radio device 630 can be passed on, if necessary.

[0081] The computing device 600 can also include an optical indicator 635, a keyboard 670, and a display 675. In embodiments, the keyboard can be a physical keyboard or a virtual keyboard generated on a touchscreen display 675.

[0082] The optical indicator 635 can be used to provide visual messages to a user of the computing device 600. The computing device 600 can also include an audio interface 640 for generating audible messages and warnings. In certain embodiments, the optical indicator 635 is a light-emitting diode (LED) or other such light source, and the audio interface 640 is a loudspeaker. In certain embodiments, the audio interface can be configured to receive an audible input.

[0083] The audio interface 640 can also be used to provide or receive acoustic signals to a user of the computing device 600. For example, a microphone can be used to receive acoustic input. The system 605 can furthermore have a video interface 650, which enables the operation of a built-in camera 655 to capture, record, or otherwise receive the coded optical identifier. The camera 655 can also capture still images, video, and the like.

[0084] In one or more embodiments, data and information generated or acquired by the computing device 600 can be stored locally. Alternatively, or in addition, the data can be stored on any number of storage media that can be accessed remotely by the computing device 600 using the radio device 630, a wired connection, or a wireless connection between the computing device 600 and another computing device. Furthermore, data and information can be readily transferred between computing devices.

[0085] Embodiments of the present disclosure are described above with reference to block diagrams and representations of process steps and the like. The described steps can be performed in a different order than shown in the figures. Furthermore, one or more of the steps can be omitted or performed substantially simultaneously. For example, two blocks shown consecutively can be executed substantially simultaneously. The blocks can also be executed in reverse order.

[0086] The description and representation of one or more of the embodiments specified in this disclosure is not intended to limit or restrict the claimed scope of this disclosure. The embodiments, examples, and details specified in this disclosure are considered sufficient to enable others to manufacture and utilize the best way of the claimed embodiments. Furthermore, the claimed embodiments should not be considered limited to any of the embodiments, examples, or details specified above. Regardless of whether the various features, including structural and methodological features, have been shown and described in combination or individually, they should be able to be selectively included or omitted to produce an embodiment with a particular set of functions.A person skilled in the art who is in possession of the description and representation of the present application will find it obvious that there are variants, modifications and alternative embodiments which lie within the broader scope of the embodiments described herein and which do not deviate from the broader scope of the claimed embodiment.

Claims

[1] A method for transmitting information from a first computing device to a second computing device, the method comprising: Generating an optical identifier on the first computing device; Generating a first frame of the optical identifier and a second frame of the optical identifier, wherein: a first section of the first frame is encoded in a first color and a second section of the first frame is encoded in a second color; and a first section of the second frame is encoded in a third color and a second section of the second frame is encoded in a fourth color; and Alternating display of the first frame and the second frame at a certain frequency. [2] Method according to claim 1, wherein the frequency is at least sixty frames per second. [3] Method according to claim 1, wherein the first color and the third color are opposite each other in a color space. [4] Method according to claim 1, wherein the second color and the fourth color are opposite each other in a color space. [5] Method according to claim 1, wherein the alternating display of the first frame and the second frame comprises the alternating display of the first frame and the second frame at a frequency at which the alternating frames are not perceptible to the human eye. [6] Method according to claim 5, wherein the alternating display of the first frame and the second frame at a frequency comprises the alternating display of the first frame and the second frame at a frequency at which the alternating frames are perceptible to a sensor associated with the second computing device. [7] Method according to claim 1, wherein the alternating display of the first frame and the second frame at a frequency comprises the alternating display of the first frame and the second frame in a background image. [8] Method according to claim 1, wherein the optical identifier is a machine-readable code. [9] Method according to claim 7, wherein the background image is a dynamic image. [10] Method for transmitting information between a first device and a second device, the method comprising: Capturing alternating frames of an optical identifier displayed on the first device, wherein the alternating frames of the optical identifier are displayed at a first frequency and wherein the alternating frames of the optical identifier are captured by the second device at a second frequency; and Processing the captured, alternating frames to determine a representation of the optical identifier. [11] Method according to claim 10, wherein the optical identifier is a machine-readable code. [12] Method according to claim 10, wherein the processing of the captured alternating frames comprises determining a temporary average of a sequence of alternating frames in order to determine an image on which the optical identifier is displayed. [13] Method according to claim 12, wherein the processing of the captured alternating frames further comprises subtracting the determined temporary mean value from the sequence of alternating frames to determine a representation of the optical identifier. [14] Method according to claim 13, wherein the processing of the captured, alternating frames further comprises performing a color space conversion on the representation of the optical identifier. [15] Method according to claim 14, wherein the processing of the captured, alternating frames further comprises determining the location where the individual pixels in the representation of the optical identifier lie in a chroma plane. [16] Method according to claim 15, wherein the processing of the captured, alternating frames further comprises determining whether the individual pixels in the representation of the optical identifier have at least a threshold distance to an origin of the chroma plane. [17] Method according to claim 16, wherein the processing of the captured, alternating frames further comprises assigning a coded value to each pixel in the representation of the optical identifier. [18] Method according to claim 16, wherein the processing of the captured, alternating frames further comprises determining a temporary identifier of each pixel. [19] Computer-readable storage medium encoding computer-executable instructions to carry out a method for transmitting information from a first computing device to a second computing device, the method comprising: Generating an optical identifier on the first computing device; Generating a first frame of the optical identifier and a second frame of the optical identifier, wherein: a first section of the first frame is encoded in a first color and a second section of the first frame is encoded in a second color; and a first section of the second frame is encoded in a third color and a second section of the second frame is encoded in a fourth color; and Alternating display of the first frame and the second frame at a certain frequency. [20] Computer-readable storage medium according to claim 19, wherein the optical identifier is a machine-readable code.

Citation Information

Patent Citations

  • Systems, devices, and methods for displaying a barcode at a computing device

    US20100259549A1

  • Video Codes for Encoding / Decoding Streaming Data

    US20130089133A1