Method for transmitting data via free-space spatiotemporal mode

By using the encoded spatiotemporal mode set in the data center to encode and decode the data, problems such as network congestion, bandwidth limitation and data security in the data center are solved, and efficient, flexible and secure data transmission is achieved.

CN120226284APending Publication Date: 2025-06-27MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380080403.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-11-30
Filing Date
2023-10-25
Publication Date
2025-06-27

AI Technical Summary

Technical Problem

There are risks of network congestion, fiber optic connection bandwidth limitations, long failure detection and maintenance time, and data corruption, theft and suppression during data transmission.

Method used

Using the encoded spatiotemporal mode set, the data is encoded into spatiotemporal modes with at least three colors, and the efficient transmission and decoding of data is achieved through the display device and the acquisition device.

Benefits of technology

It improves the bandwidth flexibility and efficiency of data transmission, reduces network congestion and fault detection time, and enhances the security and reliability of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120226284A_ABST
    Figure CN120226284A_ABST
Patent Text Reader

Abstract

There is provided a method for encoding data in a data center, the method comprising obtaining data to be encoded, encoding the data as a set of encoded spatio-temporal patterns, and outputting the set of encoded spatio-temporal patterns.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Data centers typically include routers, switches, bridges, and other physical network devices that interconnect large numbers of servers, network storage devices, and other types of computing devices. Typically, different physical network devices transfer data to other physical network devices via cable or fiber optic connections. Summary of the Invention

[0002] In some embodiments, a method for encoding data in a data center is disclosed. The method includes: obtaining data to be encoded; encoding the data into a set of encoded spatio-temporal patterns having at least three colors; and outputting the set of encoded spatio-temporal patterns.

[0003] In other embodiments, a method for decoding data in a data center is disclosed. The method includes: obtaining, in spatio-temporal manner, a set of encoded spatio-temporal patterns having at least three colors; decoding the set of encoded spatio-temporal patterns into decoded data; and storing the decoded data.

[0004] In still other embodiments, a method for transmitting data in a data center is disclosed. The method includes: encoding the data into a set of encoded spatio-temporal patterns having at least three colors; displaying the set of encoded spatio-temporal patterns; obtaining, in spatio-temporal manner, the set of encoded spatio-temporal patterns; and decoding the set of encoded spatio-temporal patterns into data.

[0005] The present Summary of the Invention is provided to introduce a series of concepts that will be further described in the Detailed Description below. The present Summary of the Invention is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in limiting the scope of the claimed subject matter.

[0006] Additional features and advantages of embodiments of the present disclosure will be set forth in the description below, and in part will be obvious from the description, or may be learned by practice of such embodiments. The features and advantages of such embodiments may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the appended claims. These and other features will become more apparent from the following description and the appended claims, or may be learned by practice of the embodiments as set forth hereinafter. Brief Description of the Drawings

[0007] To describe the manner in which the above and other features of the present disclosure can be obtained, a more specific description will be presented by reference to the specific implementations illustrated in the accompanying drawings. For better understanding, in the various drawings, like elements are designated by like reference numerals. Although some of the drawings in the figures may be schematic or exaggerated representations of concepts, at least some of the drawings in the figures may be drawn to scale. It should be understood that the drawings depict some example implementations, and these implementations will be described and explained with additional specificity and detail by using the drawings, in which:

[0008] Figures 1A to 1E It is a flowchart of a data encoding method in a data center shown in the figure.

[0009] FIG. 2A to FIG. 2E It is a flowchart of a data decoding method in a data center shown in the figure.

[0010] Figure 3A It is a front view of five racks including physical computer nodes in a data center according to at least one embodiment.

[0011] Figure 3B It is a side view of five racks (such as the racks shown) including physical computer nodes and an additional five racks including physical computer nodes in a data center according to at least one embodiment. Figure 3A shown in the figure)

[0012] Figure 4 It is an example of a data center according to at least one embodiment.

[0013] Figure 5 It illustrates an encoded spatio-temporal pattern with code symbols having at least three different colors according to at least one embodiment.

[0014] Figure 6 It illustrates an encoded spatio-temporal pattern with code symbols having at least two different intensity levels with three colors according to at least one embodiment.

[0015] Figure 7 It illustrates an encoded spatio-temporal pattern with code symbols having at least two different intensity levels with one color according to at least one embodiment.

[0016] Figure 8 It is an encoded spatio-temporal pattern with code symbols having at least two different intensity levels with two colors according to at least one embodiment.

[0017] Fig. 9 It illustrates an encoded spatio-temporal pattern with code symbols having visible light and near-visible light and at least three colors according to at least one embodiment.

[0018] Fig.10 It illustrates an encoded spatio-temporal pattern including both visible light and near-visible light and at least two colors according to at least one embodiment.

[0019] Fig.11 It illustrates two sets of encoded spatio-temporal patterns having different positions and / or different shapes according to at least one embodiment.

[0020] Fig.12 It is an example of four sets of encoded spatio-temporal patterns transmitted simultaneously according to at least one embodiment.

[0021] Fig.13 Illustrates two sets of encoded spatio - temporal patterns of different sizes according to at least one embodiment.

[0022] FIG. 14A to FIG. 14B Illustrates two sets of encoded spatio - temporal patterns displayed at different times according to at least one embodiment.

[0023] Fig.15 Illustrates two sets of encoded spatio - temporal patterns that are partially overlapping according to at least one embodiment.

[0024] Fig.16 Illustrates four sets of encoded spatio - temporal patterns that are partially overlapping according to at least one embodiment.

[0025] 17A to 17C Illustrates a set of encoded spatio - temporal patterns that move in space relative to time according to at least one embodiment.

[0026] Fig.18 Illustrates two sets of encoded spatio - temporal patterns having different positions, shapes, sizes, and at least three different colors, two different intensity levels, and both visible and near - visible light according to at least one embodiment.

[0027] FIG. 19A to FIG. 19C Illustrates two sets of encoded spatio - temporal patterns including two or more different encoding mechanisms according to at least one embodiment.

[0028] FIG. 20A to FIG. 20D Illustrates a set of encoded spatio - temporal patterns that move in space relative to time.

[0029] Fig.21 Is a thread diagram illustrating a method of transmitting data in a data center according to at least one embodiment.

[0030] Fig. 22 Is a thread diagram illustrating a method of transmitting two or more data sets in a data center.

[0031] Fig.23 Is a flowchart illustrating a method of transmitting data in a data center, where the sending node can verify that the data is correctly sent. Detailed Description

[0032] The present disclosure generally relates to data transmission in a data center. A data center typically includes physical computer nodes, servers, routers, switches, storage devices, security elements such as firewalls, and wiring between these elements. Nodes can host one or more virtual machines to provide network search, website hosting, system updates, application development and testing, or other suitable computing services to users.

[0033] One of the biggest problems in data center space is network congestion. Fibers have certain fixed bandwidth limitations, and thus cable connections are typically designed to provide a high enough total bandwidth to match the maximum data throughput. However, not all connections are always needed, and not all servers send or receive data at the maximum rate, wasting some of the resources. On the other hand, if the connection is designed for less than the maximum data throughput, the connection may not be able to handle data bursts that require the maximum data throughput (e.g., high bandwidth transmissions over a short period of time). Internet traffic can be particularly bursty, flooding the network and inhibiting communication between nodes. Although there are central controllers in the form of routers and compute cluster software-based resource managers, these are not a good match for high volumes of Internet traffic because at least some of the central controllers may not control packet transmission at the source (e.g., at the node) without exacerbating the traffic congestion with their own signals.

[0034] In addition, as the network becomes more interconnected, more fibers are needed. There are other problems with fiber connections. If a fiber fails, detecting the problem and then finding and replacing the faulty cable requires time and effort. In addition, when the network configuration changes, rewiring the data center can take weeks.

[0035] In addition, the Open Systems Interconnection (OSI) model provides a common basis for network interconnection. It also inserts twelve physical or software component layers between applications. Data transfer through this framework requires time-consuming data serialization and deserialization. In addition, multiple touch points provide opportunities for data corruption, theft, and inhibition. Therefore, an adaptable and continuously dynamic communication channel is needed that simplifies data transfer and in which the bandwidth can be adapted based on requirements. At least one embodiment described herein can provide an adaptable and / or dynamic communication channel that simplifies data transfer and in which the bandwidth can be adapted based on requirements. Because of the increase in the refresh rate and / or resolution of displays and projectors, at least one embodiment described herein can provide faster and more power-efficient data transfer than fiber connections.

[0036] Figures 1A to 1D Flowcharts depicting methods 100A, 100B, 100C, 100D for encoding data in a data center are included. For ease of description, these methods are described simultaneously. Methods 100A, 100B, 100C, 100D include obtaining data to be encoded at stages 102A, 102B, 102C, 102D. The data can be a specific data type. For example, the data type can be numeric, alphanumeric, binary, Chinese characters, any other type of data, or a combination thereof. In some embodiments, obtaining the data to be encoded can include obtaining the data from a first sending node, as described in connection with FIG. 3A to FIG. 3BThis will be discussed further. In some embodiments, the data includes data and header information. For example, it may include one or more of data, destination information, sender information, timing, error correction codes, and any other information typically stored in a packet header. In some embodiments, the data includes only data without any header information.

[0037] In some embodiments, the sending node may be a server that includes virtual machines and provides web search, website hosting, system updates, application development and testing, or other suitable computing services to users. In some embodiments, one or more applications may reside on the node. For example, the application may be a word processor, a media player, an email application, accounting software, any other type of application designed to perform a specific task, or a combination thereof.

[0038] In some embodiments, obtaining the data may include obtaining the data from a storage device residing at the first sending node. For example, the storage device may include an HDD, an SSD, an optical storage device, any other type of non-volatile storage device for storing data for long-term or short-term retention, or a combination thereof. In some embodiments, obtaining the data may include obtaining the data from a memory device residing at the first sending node. For example, the memory device may be a ROM, a RAM, a DRAM, an SRAM, or other suitable volatile memory device for temporarily storing data.

[0039] Figure 1E is a flowchart of a method 100E for encoding data in a data center. As Figure 1E shown, method 100E includes obtaining a first data set and a second data set to be encoded at stage 102E. In some embodiments, the first data set and the second data set may be obtained from a first sending node, as discussed in conjunction with Fig.21 further. In some embodiments, obtaining two different data sets includes obtaining the first data set from a first sending node and obtaining the second data set from a second sending node, as discussed in conjunction with Fig. 22 further.

[0040] Method 100A includes encoding data into a set of encoded spatio-temporal patterns at stage 104A. Spatio-temporal patterns can be patterns observed in both space and time. In some embodiments, the spatio-temporal patterns can be formed by visible light. For example, light having a wavelength from 400 nanometers to 700 nanometers. In some embodiments, the spatio-temporal patterns can be formed by near-visible light. For example, light having a wavelength from 780 nanometers to 1 millimeter (infrared), or light having a wavelength from 100 nanometers to 400 nanometers (ultraviolet). In some embodiments, the spatio-temporal patterns can be formed by other spatial signals (also referred to as invisible signals). For example, invisible spatial signals generated as spatio-temporal patterns can be formed by electromagnetic waves, microwaves, and / or sound waves. In some embodiments, the set of encoded spatio-temporal patterns includes only one spatio-temporal pattern. In some embodiments, the set of encoded spatio-temporal patterns includes two or more patterns.

[0041] The set of encoded spatio-temporal patterns can include one or more spatio-temporal patterns. In some embodiments, each spatio-temporal pattern in the set of encoded spatio-temporal patterns is a data packet, where each spatio-temporal pattern is transmitted in sequence.

[0042] Encoding the data into the set of encoded spatio-temporal patterns can include encoding a first data set and a second data set into a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns (as Figure 1E shown at stage 104E), and / or the encoded spatio-temporal patterns can include at least three colors (as Figure 1B shown at stage 104B), a first intensity level and a second intensity level (as Figure 1C shown at stage 104C), visible light and near-visible light (as Figure 1D shown at stage 104D), or a combination thereof. In some embodiments, the set of encoded spatio-temporal patterns (or the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns) includes two colors. In some embodiments, the set of encoded spatio-temporal patterns (or the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns) includes one color.

[0043] In some embodiments, the data is not serialized before it is encoded. Instead, the data can be sent as non-serialized data in matrix form. One possible benefit of transmitting non-serialized data is that it does not require passing through multiple physical or software component layers between applications, thus saving the time for serialization, deserialization, and data transmission. Another possible benefit of transmitting non-serialized data is that data corruption, data theft, data throttling, other possibilities, or a combination thereof can be minimized.

[0044] In some embodiments, encoding the set of encoded spatio-temporal patterns includes encoding the data into code symbols. The code symbols can be organized into encoded spatio-temporal patterns. For example, the encoded spatio-temporal patterns can include 7×7 code symbols, as combined with Figure 5which will be further discussed. In another example, the encoded spatio-temporal pattern can include 6×9 code symbols, as discussed in connection with Fig.11 which will be further discussed. In another example, the encoded spatio-temporal pattern can be organized in other ways, including being encoded as a shape without straight edges or a typical geometric shape.

[0045] In some embodiments, encoding the data into code symbols can further include the steps of encoding the data into a bit stream and further encoding the bit stream into code symbols. The bit stream typically includes one or more bits, and the one or more bits can have values such as 1 or 0, for example.

[0046] In some embodiments, the spatio-temporal pattern can include one or more colors. In some embodiments, the spatio-temporal pattern can include one or more colors that can be produced by visible light (e.g., light having a wavelength from 400 nanometers to 700 nanometers). In some embodiments, the first color can be the color 'ON', and the second color can be the color 'OFF'. For example, in a two-color system, the first color can be white (color 'ON'), and the second color can be black (color 'OFF'). In another example, in a two-color system, the first color can be red (color 'ON'), and the second color can be green (color 'ON'). In yet another example, in a three-color system, the first color can be green (color 'ON'), the second color can be red (color 'ON'), and the third color can be black (color 'OFF'). In yet another example, in a three-color system, the first color can be blue (color 'ON'), the second color can be red (color 'ON'), and the third color can be green (color 'ON'). In some embodiments where the set of encoded spatio-temporal patterns includes at least three colors, at least two of the at least three colors are used to encode data. For example, at least two of the at least three colors provide values (such as 1 and 0) that can be encoded by an encoder for encoding data.

[0047] In some embodiments where the set of encoded spatio-temporal patterns includes at least three colors, all three or more colors can be used to encode data. For example, instead of using a typical two-bit encoding system (1 and 0), the system can use three or more bit indicators, where each color represents a unique bit (such as a three-color system or a four-color system when using three-bit or four-bit indicators, respectively). In at least one embodiment where at least three different colors are used to encode data, one possible benefit of using more than two-bit encoding is that it allows data to be encoded more efficiently and the encoded data to be output faster compared to using a two-bit encoding system. Another possible benefit of using three or more colors is to provide flexibility in bandwidth, because more colors used provide a higher bandwidth for data transmission.

[0048] In some embodiments where the encoded spatio-temporal pattern set includes a first intensity level and a second intensity level, these two different intensity levels are used to encode data. For example, the first intensity level and the second intensity level provide values (such as 1 and 0) that can be encoded by an encoder for encoding data. For example, the encoded spatio-temporal pattern set can include red at the first intensity level (having a value of 1) and red at the second intensity level (having a value of 0), as discussed in conjunction with Figure 7 Further discussion. One possible benefit of using two or more intensity levels is to provide flexibility in bandwidth, because using two or more intensity levels provides higher bandwidth for data transmission.

[0049] In some embodiments where the encoded spatio-temporal pattern set includes a first intensity level, a second intensity level, and at least two colors, these two colors are used to encode data. For example, the first color and the second color provide values (such as 1 and 0 in a two-bit or multi-bit system) that can be encoded by an encoder for encoding data. For example, the encoded spatio-temporal pattern set can include red with a value of 1 and blue with a value of 0, as discussed in conjunction with Figure 8 Further discussion.

[0050] In some embodiments where the encoded spatio-temporal pattern set includes both visible light and near-visible light, at least two colors are used to encode data, and the near-visible light is used as header information. For example, the first color and the second color provide values (such as 1 and 0) that can be encoded by an encoder for encoding data. For example, the encoded spatio-temporal pattern set can include white with a value of 1 and black with a value of 0, as discussed in conjunction with Fig.10 Further discussion.

[0051] In some embodiments where the encoded spatio-temporal pattern set includes at least three colors, at least one of the at least three colors is used to provide header information without including the header information in the encoded data itself, and at least two of the at least three different colors are used to encode data. For example, the header information can include the recipient of the data, the sender of the data, routing information, priority level information, any other header information, or a combination thereof. In some embodiments where the encoded spatio-temporal pattern set includes at least three colors, at least one of the at least three colors can include header information indicating the intended recipient of the data, as discussed in conjunction with Figure 5will be further discussed. One possible advantage of using colors to identify the intended recipient is that it provides a faster way for the receiving node to determine whether the data is for it or whether it can ignore at least a portion of the data without having to decode the coded spatio-temporal pattern set to read the header information in the data. In some embodiments, at least one of at least three colors may include header information indicating a priority level for the data, as discussed in conjunction with Figure 5 will be further discussed.

[0052] In some embodiments where the coded spatio-temporal pattern set includes a first intensity level and a second intensity level, at least one intensity level is used to provide header information without including the header information in the coded data itself, and at least two colors are used to code the data. In some embodiments where the coded spatio-temporal pattern set includes a first intensity level and a second intensity level, at least one color is used to provide header information without including the header information in the coded data itself, and the first intensity level and the second intensity level are used to code the data. For example, the header information may include the recipient of the data, the sender of the data, routing information, priority level information, any other header information, or combinations thereof.

[0053] Although the header information may indicate requirements for using the header, the claims are not limited to such use. In some embodiments, the coded spatio-temporal pattern set does not include header information. In some embodiments, the data to be coded does not include a header but includes header information.

[0054] In some embodiments, at least one of the code symbols in the coded spatio-temporal pattern may include an intensity level different from another code symbol. For example, the different intensity levels may include header information indicating the intended recipient of at least a portion of the data, as discussed in conjunction with Figure 6 will be further discussed. In some embodiments, the different intensity levels may include header information indicating a priority level for the data, as discussed in conjunction with Figure 6 will be further discussed.

[0055] In some embodiments, the spatio-temporal pattern may further include a near-visible light pattern, such as infrared (IR) light (e.g., light having a wavelength from 780 nanometers to 1 millimeter) or ultraviolet (UV) light (e.g., light having a wavelength from 100 nanometers to 400 nanometers). In some embodiments, using near-visible light may indicate the intended recipient for coding the data, as discussed in conjunction with Fig. 9 will be further discussed. In some embodiments, using near-visible light may indicate a priority level for the data, as discussed in conjunction with Fig. 9 will be further discussed. In some embodiments, near-visible light may be used to code the data.

[0056] In some embodiments, encoding a spatio-temporal pattern may include a shape factor. For example, the shape factor may indicate the intended recipient for the data, as further discussed in conjunction with Fig.11 as further discussed. In another example, the shape factor may indicate the priority level for the data, as further discussed in conjunction with Fig.11 as further discussed. In another example, the shape factor may be used to encode the data.

[0057] In some embodiments, encoding a spatio-temporal pattern may include a position factor. For example, the position factor may indicate the intended recipient for the data, as further discussed in conjunction with Fig.11 as further discussed. In another example, the position factor may indicate the priority level for the data, as further discussed in conjunction with Fig.11 as further discussed. In some embodiments, encoding a spatio-temporal pattern may include a size factor, as further discussed in conjunction with Fig.13 as further discussed. In another example, the size factor may be used to encode the data. One possible benefit of using spatio-temporal patterns of different sizes is to provide flexibility in bandwidth, since using a larger size spatio-temporal pattern provides higher bandwidth for data transmission.

[0058] In some embodiments, encoding a spatio-temporal pattern may include a timing factor, as further discussed in conjunction with Fig.12 A through Fig.12 B as further discussed. For example, the timing factor may indicate the intended recipient for the data, as further discussed in conjunction with Fig.12 A through Fig.12 B as further discussed. In some embodiments, the encoded spatio-temporal pattern may move in space relative to time, as further discussed in conjunction with 17A to 17C as further discussed.

[0059] Methods 100A through 100D include outputting a set of encoded spatio-temporal patterns at stages 106A through 106D. Method 100E includes outputting a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns at stage 106E. In some embodiments, outputting a set of encoded spatio-temporal patterns (or the first and second sets of encoded spatio-temporal patterns for Figure 1E ) also includes displaying the output set of encoded spatio-temporal patterns.

[0060] In some embodiments, the encoded spatio-temporal pattern set may be displayed by at least one display device capable of displaying, reflecting, or transmitting and reflecting light. For example, a display device capable of reflecting light may include a projection screen, and a display device capable of transmitting and reflecting light may include a rear projection screen. Additionally, a display device capable of displaying light may include a computer screen, a TV monitor, or any other display device capable of displaying light. In some embodiments, the encoded spatio-temporal pattern set may be displayed by a display device not optimized for human vision. For example, with technological advancements, the spatio-temporal pattern may be displayed by a display device capable of displaying microwaves, infrared, ultraviolet, x-rays, gamma rays, or any other wavelength in the electromagnetic spectrum.

[0061] One limitation of a display device capable of displaying or a projector capable of projecting is the device refresh rate. Typical TV refresh rates are between 60 and 120 Hz, while projector refresh rates can reach 120 to 240 Hz. Gaming monitors typically require a high refresh rate, some reaching 360 Hz. Currently, the highest known non-commercial experimental displays have a refresh rate of 10 kHz, but it is expected that these refresh rates will increase in the future with technological advancements. One possible advantage of having a higher refresh rate on at least one embodiment of a display device is that more data can be output faster, and thus the bandwidth of the communication channel can be increased.

[0062] In some embodiments, outputting the encoded spatio-temporal pattern set further includes displaying at least a portion of the encoded pattern set to a display device having a bi-directional screen. A bi-directional screen (such as a projection screen) enables information transmission both away from the transmitting projector and transmitting node, and back to the transmitting node and associated receiving device, as further discussed in Figure 4 In some embodiments, the bi-directional screen may include a pair of one-way screens facing opposite (or substantially opposite) directions. One possible advantage of using a bi-directional screen is that it enables the transmitting node to verify whether the data transmission has been successfully sent (e.g., without any corruption, overlapping with other transmissions, or any other deviation). In some embodiments, the transmitting node may observe additional available bandwidth in the form of blank screen space from the bi-directional screen and extend its transmission size to increase the transmission rate.

[0063] In some embodiments, the projection screen is a rear - projection screen, where the projected image is visible on both sides of the screen. A rear - projection screen can both reflect light and transmit light. The reflection of light occurs on the same side of the screen where the projector is located, while when the screen transmits light, the image is visible on the opposite side of the screen. This increases the pool of receiving nodes. One possible advantage of using a rear - projection screen is that it enables the sending node to verify whether the data transmission has been successfully sent (e.g., without any corruption, overlapping with other transmissions, or any other deviation). Another possible advantage of using a rear - projection screen is that it can enable a larger pool of sending and receiving nodes to send and receive data. For example, data can be transmitted from a sending node to a receiving node, where the receiving node can be anywhere behind, near, or in front of the sending node. In some embodiments, the sending node can observe additional bandwidth available in the form of blank screen space from the rear - projection screen and expand its transmission size to increase the transmission rate.

[0064] In some embodiments, the output set of encoded spatio - temporal patterns further includes a set of encoded spatio - temporal patterns for displaying the output on two or more display devices, as discussed in conjunction with FIG. 3A to FIG. 3B further below.

[0065] In some embodiments, two or more sets of encoded spatio - temporal patterns are output. In some embodiments, the two or more sets of encoded spatio - temporal patterns at least partially overlap, as discussed in conjunction with Fig.15 further below.

[0066] FIG. 2A to FIG. 2E Flowcharts including methods 200A, 200B, 200C, 200D, 200E for decoding data (such as data encoded by one or more of methods 100A, 100B, 100C, 100D, 100E) in a data center are illustrated. For ease of description, these methods are described simultaneously. Methods 200A, 200B, 200C, 200D include obtaining a set of encoded spatio - temporal patterns (or Figure 2E the first and second sets of encoded spatio - temporal patterns in Figure 2E ) spatio - temporally at stage 208A, 208B, 208C, 208D, 208E (e.g., a set of encoded spatio - temporal patterns encoded by methods 100A, 100B, 100C, 100D, 100E). Obtaining a set of encoded spatio - temporal patterns spatio - temporally can include obtaining a first and a second set of encoded spatio - temporal patterns spatio - temporally (as shown at stage 208E in Figure 2B ), and / or the spatio - temporal pattern can include at least three colors (as shown at stage 208B in Figure 2C ), a first intensity level and a second intensity level (as shown at stage 208C in Figure 2Dhighlighted at stage 208D), or a combination thereof. In some embodiments, the encoded spatio-temporal pattern set (or the first and second encoded spatio-temporal pattern sets) includes two colors. In some embodiments, the encoded spatio-temporal pattern set (or the first and second encoded spatio-temporal pattern sets) includes one color.

[0067] In some embodiments, obtaining the encoded spatio-temporal pattern set spatio-temporally includes obtaining spatio-temporally an encoded spatio-temporal pattern set output by at least one display device capable of displaying, reflecting, or transmitting and reflecting light, as described herein. In some embodiments, obtaining the encoded spatio-temporal pattern set (or the first and second encoded spatio-temporal pattern sets) spatio-temporally includes obtaining (e.g., capturing, detecting, identifying) spatio-temporally via an obtaining device. For example, the obtaining device can be a camera, a video camera, an image sensor, a photodiode, or any other device capable of obtaining spatio-temporal images alone or in combination with other devices.

[0068] In some embodiments, the obtaining device can capture at least the same (or higher) (multiple) frame rate as the display device is capable of outputting to reduce or prevent data loss. In some embodiments, the obtaining device can have a higher frame rate than the display device, which can facilitate data transmission at the maximum frame rate of the display device.

[0069] In some embodiments, there can be more than one obtaining device obtaining the encoded spatio-temporal pattern set, as discussed further in connection with FIG. 3A to FIG. 3B For example, in some embodiments where the data is intended to be broadcast to multiple nodes, a first transmitting node can output the data and multiple receiving nodes can simultaneously obtain the broadcast data from a display device (e.g., a single display device) without the data passing through a central router. In some embodiments, only one (e.g., a single) obtaining device can be used for only one (e.g., a single) display device (e.g., a 1:1 ratio of obtaining device to display device). In some embodiments, there can be two or more obtaining devices for a single display device, as discussed further in connection with FIG. 3A to FIG. 3B For example, in some embodiments, where the data is intended to be broadcast to multiple nodes, a first transmitting node can output the data and multiple receiving nodes can simultaneously obtain the broadcast data from a display device (e.g., a single display device) without the data passing through a central router. In some embodiments, only one (e.g., a single) obtaining device can be used for only one (e.g., a single) display device (e.g., a 1:1 ratio of obtaining device to display device). In some embodiments, there can be two or more obtaining devices for a single display device, as discussed further in connection with

[0070] Then, methods 200A to 200E include, at stages 210A to 210D, the encoded spatio-temporal pattern set (or Figure 2EThe first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set in [are] decoded into decoded data. In some embodiments, decoding the encoded spatio-temporal pattern set includes decoding at least three colors, as shown in stage 210B. In some embodiments, decoding the encoded spatio-temporal pattern set includes decoding a first intensity level and a second intensity level, as shown in stage 210C. In some embodiments, decoding the encoded spatio-temporal pattern set includes decoding visible light and near-visible light, as shown in stage 210D. In some embodiments, decoding the encoded spatio-temporal pattern set includes decoding two colors. In some embodiments, decoding the encoded spatio-temporal pattern set includes decoding one color. Method 200E then includes decoding the first decoded data set and the second decoded data set at stage 210E.

[0071] In some embodiments, the decoded data is unserialized data in matrix form. One possible benefit of transmitting unserialized data is that it does not require passing through multiple physical or software component layers between applications, thus saving data transmission time. Another possible benefit of transmitting unserialized data is that it can minimize the likelihood of data corruption, data theft, and data throttling.

[0072] In some embodiments, decoding one or more encoded spatio-temporal pattern sets into decoded data includes decoding one or more of the encoded spatio-temporal patterns disclosed herein.

[0073] In some embodiments, decoding the encoded spatio-temporal pattern set into decoded data includes decoding code symbols into decoded data. As described herein, code symbols can be organized into encoded spatio-temporal patterns. In some embodiments, decoding code symbols into data can also include decoding the code symbols into a bit stream and decoding the bit stream into data, as described herein.

[0074] Methods 200A to 200D then include storing the decoded data at stages 212A to 212D. Method 200E then includes storing the first decoded data set and the second decoded data set at stage 212E. In some embodiments, storing the decoded data includes storing the data in a storage device residing at one or more receiving nodes, as combined with FIG. 3A to FIG. 3BTo be further discussed. For example, the first decoded data set can be stored at the first receiving node, and the second decoded data set can be stored at the second receiving node. The storage device can include an HDD, an SSD, an optical storage device, any other type of non-volatile storage device for storing data for long-term or short-term retention, or a combination thereof. In some embodiments, storing data can include storing the data into a memory device residing at the first receiving node. For example, the memory device can be a ROM, a RAM, a DRAM, an SRAM, any other suitable volatile memory device for temporarily storing data, or a combination thereof. In some embodiments, storing the decoded data further includes storing the decoded data into a buffer and further transmitting the data to another receiving node.

[0075] Figure 3A and Figure 3B is an example of a data center according to at least one embodiment. As used herein, the term "data center" generally refers to interconnected nodes at the same physical location that connect multiple servers to each other and / or to an external network (e.g., the Internet) or to another data center at another physical location. The term "node" generally refers to a set of servers, storage devices, routers, switches, hubs, bridges, load balancers, security gateways, or firewalls. In some embodiments, a node can refer to a single device. Additionally, a node can perform processes such as encoding and decoding of data. In some embodiments, the encoder and decoder can be separate physical computing devices. In some embodiments, the encoder and decoder can be processes performed by one or more of the nodes. A "server" generally refers to a physical computing device configured to implement, for example, one or more virtual machines or other suitable virtualized components.

[0076] Figure 3A shows a front view of five racks (301_1, 301_2, 301_3, 301_4, 301_5) including variants of physical nodes in a data center. For example, rack 301_1 includes a decoder 364, an encoder 366, a storage device 368, and four servers 370, and rack 301_5 includes servers 370, an encoder 366, a decoder 364, and four storage devices 368. In Figure 3AIn the illustrated embodiment, each rack includes seven physical nodes. However, it should be understood that in some embodiments, a rack may include more than seven or fewer than seven physical nodes. It should be understood that a rack may include any combination of different physical nodes and is not limited to the provided examples of physical nodes. Additionally, a node is connected to at least one display device and at least one acquisition device. For example, one or more nodes on rack 301_1 are connected to two display devices 303_11, 303_12 and one acquisition device 305_11, and one or more nodes on rack 301_5 are connected to one display device 303_51 and two acquisition devices 305_51, 305_52. In Figure 3A In the illustrated example, one or more nodes on rack 301_2 are connected to one display device 303_21 and one acquisition device 305_21, one or more nodes on rack 303_1 are connected to three display devices 303_31, 303_32, 303_33 and one acquisition device 305_31, and one or more nodes on rack 301_4 are connected to one display device 303_41 and three acquisition devices 305_41, 305_42, 305_43.

[0077] In some embodiments, more than two display devices and / or more than two acquisition devices are connected to a single node. In some embodiments, two or more nodes may share one or more display devices and / or one or more acquisition devices. In some embodiments, one or more display devices may point in multiple different directions. For example, a first display device may point in one direction and a second display device may point in a second direction, where the second direction may be 90 degrees to 180 degrees from the first direction. In another example, a display device may rotate 360 degrees and adjust its direction based on the position of the acquisition device of the receiving node in the data center. An acquisition device may capture visible light, near-visible light, invisible space signals, or two or more of visible light, near-visible light, and invisible space signals. In some embodiments, one or more sending nodes and / or one or more receiving nodes may be servers that include virtual machines that provide web search, website hosting, system updates, application development and testing, other suitable computing services, or a combination thereof to users. In some embodiments, one or more applications may reside on a node. For example, an application may be a word processor, a media player, an email application, accounting software, any other type of application designed to perform a specific task, or a combination thereof.

[0078] In some embodiments, an acquisition device may point in multiple different directions. For example, an acquisition device may rotate 360 degrees and adjust its direction based on the display position of the sending node in the data center.

[0079] Figure 3BShows a side view of five racks 301_1, 301_2, 301_3, 301_4, 301_5 (such as the Figure 3A rack shown) including variants of different physical nodes in a data center, and an additional five racks 301_6, 301_7, 301_8, 301_9, 301_10. In one embodiment, an acquisition device 305_11 (shown as a camera) is connected to one or more nodes on rack 301_1 and faces a display device 303_61 (shown as a computer screen) connected to one or more nodes on rack 301_6. For example, a server node residing in rack 301_6 can transmit data to a storage device node residing in rack 301_1. The server node on rack 301_6 can transmit data to an encoder in one or more of the nodes residing on rack 301_6. The encoder can encode the data into one or more sets of encoded spatio-temporal patterns, such as the Figure 5 encoded spatio-temporal patterns discussed in connection with FIG. 20. The encoder can transmit one or more sets of encoded spatio-temporal patterns to the display device 303_61, and the display device 303_61 displays the set of encoded spatio-temporal patterns. The acquisition device 305_11 (e.g., a camera) captures the set of encoded spatio-temporal patterns from the display device 303_61 and transmits the captured set of encoded spatio-temporal patterns to a decoder in one of the nodes residing on rack 301_1. The decoder decodes the set of encoded spatio-temporal patterns into data and delivers the data to the storage device node in rack 301_1 for storage. Similarly, one or more of the nodes residing on rack 301_2 can have data transmission with one or more of the nodes residing on rack 301_7, one or more of the nodes residing on rack 301_3 can have data transmission with one or more of the nodes residing on rack 301_8, one or more of the nodes residing on rack 301_4 can have data transmission with one or more of the nodes residing on rack 301_9, and one or more of the nodes residing on rack 301_5 can have data transmission with one or more of the nodes residing on rack 301_10.

[0080] In some embodiments, a sending node can have simultaneous data transmission with two or more receiving nodes. For example, a sending node on rack 301_6 can output two or more sets of encoded spatio-temporal patterns on the display device 303_61, the acquisition device 305_11 can obtain a first set of encoded spatio-temporal patterns from the display device 303_61, and the acquisition device 305_21 can obtain a second set of encoded spatio-temporal patterns from the display device 303_61.

[0081] Figure 4An example of a data center according to at least one embodiment. The data center includes a plurality of racks (401_1, 401_2, 401_3, 401_4, 401_5, 401_6, 401_7), which include a plurality of different nodes 411, such as the nodes (364, 366, 368, 370) discussed in connection with FIG. 3A to FIG. 3B The nodes (364, 366, 368, 370) discussed. The data center also includes one or more projectors (407_1, 407_2, and 407_3), one or more projection screens 409, and a plurality of acquisition devices 405. The sending node 411 can be connected to one or more projectors (407_1, 407_2, and 407_3). For example, the node 411 residing in the rack 401_1 can send data encoded as a spatio-temporal pattern (such as 414_1) to any of the other nodes residing on the racks 401_2, 401_3, 401_4, 401_5, 401_6, and 401_7 by sending the encoded data to one of the projectors 407_1, 407_2, and 407_3. Then, the projector can project the spatio-temporal pattern onto the projection screen 409. One or more projectors can be configured to project the spatio-temporal pattern onto the projection screen 409. For example, the projector 407_3 can project the spatio-temporal patterns 414_1 and 414_2, the projector 407_1 can project the spatio-temporal patterns 414_3, 414_4, 414_5, and 414_6, and the projector 407_2 can project the spatio-temporal patterns 414_7 and 414_8. In another example, the projector 407_1 can project all the spatio-temporal patterns in the projection screen 409. One or more acquisition devices 405 can be configured to acquire the spatio-temporal pattern from the projection screen 409. In some embodiments, the acquisition device 405 acquires the spatio-temporal pattern from the projection screen 409 and delivers it to a decoder to decode the spatio-temporal pattern into decoded data. In some embodiments, the decoder delivers the data to the receiving node 411. In some embodiments, the decoder delivers the data to the sending node 411 to verify whether the data is correctly sent, as discussed in connection with Fig.23 Further discussed. One possible benefit of using projectors and projection screens for data transmission is that a single sending node can reach multiple different nodes, each of which can receive data through the acquisition device. Another possible benefit of using projectors and projection screens is that nodes can broadcast data to multiple nodes simultaneously from the screen without the data passing through a central router.

[0082] Figure 5An example of an encoded spatio-temporal pattern 514 with code symbols having at least three different colors according to at least one embodiment. The encoded spatio-temporal pattern 514 includes three different colors; a first color 516, a second color 518, and a third color 520. In some embodiments, all three (or more) different colors are used to encode and decode data. In one embodiment, two of the at least three colors can be used to encode and / or decode data, and the third color can be used as header information. For example, the header information can identify the receiver for the data, and / or the header information can indicate the priority level for the data. In some embodiments, only a single code symbol can be used for the header information. In some embodiments, two or more code symbols can be used for the header information.

[0083] For example, in Figure 5 , the first color 516 can be black, the second color 518 can be white, and the third color 520 can be blue. In another example, the first color 516 can be red, the second color 518 can be green, and the third color 520 can be blue. In the example, the third color 520 is blue and can indicate the intended recipient. In one embodiment, different colors can indicate different receiving nodes. For example, if the third color is blue, the data is for the first receiving node, and if the second color is red, the data is for the second receiving node. One possible advantage of using colors to identify the intended recipient is that it provides a faster way for the receiving node to decide whether the data is for it or whether it can ignore at least a portion of the data without having to decode the set of encoded spatio-temporal patterns to read potential header information. This is beneficial in cases where multiple receiving nodes obtain at least a portion of the set of encoded spatio-temporal patterns.

[0084] In some embodiments, the third color 520 can be used to indicate the priority level for data transmission (e.g., at least a portion of the data transmission of all the data being sent, at least a portion of the data transmission of the data being sent). For example, if the third color 520 is blue, the priority level for the data is normal, and if the third color 520 is red, the priority level for the data is high. One possible advantage of using colors to indicate the priority level for data is that it is easy to identify emergency data transmissions in cases where more than one set of encoded spatio-temporal patterns are simultaneously output by a display device (e.g., a projection screen). Then, the first receiving node can first decode the set of encoded spatio-temporal patterns at a higher priority level before decoding the set of encoded spatio-temporal patterns at a normal priority level.

[0085] Even though the spatio-temporal pattern examples here mainly focus on visible light spatio-temporal patterns, it should be noted that these patterns can be formed by any other spatial signals, as previously mentioned.

[0086] Figure 6 is an example of an encoded spatio - temporal pattern 614 having a code symbol with at least two different intensity levels and three colors according to at least one embodiment. The encoded spatio - temporal pattern 614 includes three different colors having a first intensity level; a first color 616, a second color 618, and a third color 620. The encoded spatio - temporal pattern 614 also includes the first color having a second intensity level 622. For example, in Figure 6 , the first color 616 can be red, having the first intensity level, the second color 618 can be green, having the first intensity level, the third color 620 can be blue, having the first intensity level, and red has the second intensity level 622. Thus, Figure 6 the code symbols 616 and 622 in are the same color but have different intensity levels. In some embodiments, the encoded spatio - temporal pattern can have more than one color having the second intensity level. In some embodiments, for one or more of the three or more colors, the encoded spatio - temporal pattern can have more than two different intensity levels.

[0087] In some embodiments, all three (or more) different colors having the first intensity level are used to encode and decode data, and at least one of at least three or more different colors having the second intensity level can be used as header information. For example, the header information can identify the receiver for the data, and / or the header information can indicate the priority level for the data.

[0088] The first color having the second intensity level 622 can indicate the intended recipient. In one embodiment, different intensities indicate different receiving nodes. For example, if the intensity level for the first color is low, the data is for the first receiving node, and if the intensity level for the first color is high, the data is for the second receiving node. One possible advantage of using intensity to identify the intended recipient is that it provides a faster way for the receiving node to decide whether the data is for them or whether they can ignore the data without having to decode the set of encoded spatio - temporal patterns to read the header information. This is beneficial in cases where multiple receiving nodes obtain the set of encoded spatio - temporal patterns.

[0089] In some embodiments, the intensity level can be used to indicate the priority level for data transmission. For example, if the intensity level is medium, the priority level for the data is normal, while if the intensity level is high, the priority level for the data is high. One possible advantage of using intensity to indicate the priority level for data is that in the case of outputting more than one set of encoded spatio-temporal patterns on the screen, it is easy to identify emergency data transmissions. Then, the first receiving node will first decode the encoded spatio-temporal pattern set with a higher priority level before decoding the encoded spatio-temporal pattern set with a normal priority level.

[0090] Figure 7 is an example of an encoded spatio-temporal pattern 714 with code symbols having at least two different intensity levels with one color. The encoded spatio-temporal pattern 714 includes one color with a first intensity level 716 and the same color with a second intensity level 722. For example, in Figure 7 the color with the first intensity level 716 and the second intensity level 722 can be red. In some embodiments, these two different intensity levels are used to encode and decode data, and the color is used as header information. For example, the first intensity level can have a value of 1, and the second intensity level can have a value of 0.

[0091] In some embodiments, the header information can identify the receiver for the data, and / or the header information can indicate the priority level for the data. For example, red can indicate that the data is for the first receiving node, and blue can indicate that the data is for the second receiving node. One possible advantage of using color to identify the intended recipient is that it provides a faster way for the receiving node to decide whether the data is for them or whether they can ignore the data without having to decode the encoded spatio-temporal pattern set to read the header information. This is beneficial in the case where multiple receiving nodes obtain the encoded spatio-temporal pattern set.

[0092] Figure 8 is an example of an encoded spatio-temporal pattern 814 with code symbols having at least two different intensity levels and two colors. The encoded spatio-temporal pattern 814 includes one color with a first intensity level 816 and the same color with a second intensity level 822. The encoded spatio-temporal pattern 814 also includes a second color with a first intensity level 818. For example, the first color can be green, and the second color can be white. In some embodiments, the first color with two different intensity levels is used to encode and decode data, and the second color is used as header information. For example, the first color with the first intensity level 816 can have a value of 1, and the second color with the second intensity level 822 can have a value of 0.

[0093] In some embodiments, two colors having a first intensity level (e.g., first intensity levels 816, 818) are used to encode and decode data, and a second intensity level 822 is used as header information. The header information can identify the receiver for the data and / or the priority level for the data. For example, in Figure 8 if the second intensity level is low, the data is for a first receiving node, and if the second intensity level is high (e.g., higher than the first intensity level), the data is for a second receiving node.

[0094] Fig. 9 is an example of an encoded spatio-temporal pattern 914 with code symbols having visible and near-visible light according to at least one embodiment. The encoded spatio-temporal pattern 914 includes three different colors: a first color 916, a second color 918, and a third color 920. The encoded spatio-temporal pattern 914 also includes near-visible light (such as UV or IR) code symbols 924. For example, in Fig. 9 the first color 916 can be white, the second color 918 can be orange, the third color 920 can be blue, and the near-visible light code symbol 924 can be activated ON or OFF. In some embodiments, a TV screen can implement visible and near-visible light sources on a display. For example, individual pixels can be activated with visible or near-visible light based on need. In some embodiments, the encoded spatio-temporal pattern can have more than one near-visible light code symbol.

[0095] In some embodiments, at least three or more different colors are used to encode and decode data, and at least one near-visible light code symbol can be used as header information. The header information can identify the receiver for the data and / or can indicate the priority level for the data.

[0096] In some embodiments, the encoded spatio-temporal pattern 914 includes two different colors and two different intensity levels as well as near-visible light. For example, the encoded spatio-temporal pattern 914 includes a first color having a first intensity level 916, a second color having a first intensity level 918, a second color having a second intensity level 920, and near-visible light 924.

[0097] In some embodiments, two colors together with two different intensity levels are used to encode and decode data, and the near-visible light code symbol is used as header information. The header information can identify the receiver for the data and / or can be used to indicate the priority level of the data.

[0098] In some embodiments, at least three or more different colors can be used to encode and decode data, and at least one near-visible light code symbol can be used as header information. For example, the header information can identify the receiver for the data and / or can indicate the priority level for the data.

[0099] In Fig. 9 the illustrated embodiment, the near visible light code symbol 924 may indicate the intended recipient. In one embodiment, the near visible light code symbol may indicate different receiving nodes. For example, if the near visible light is in the 'ON' mode, the data is for the first receiving node, and if the near visible light is in the 'OFF' mode, the data is for the second receiving node. In another example, if the near visible light is UV light, the data is for the first receiving node, and if the near visible light is IR light, the data is for the second receiving node, and if the near visible light is in the 'OFF' mode, the data is for the third receiving node. In yet another example, if the near visible light forms a specific pattern, such as a straight vertical line within a set of encoded visible patterns, the data is for the first receiving node, and if the near visible light forms a square within the set of encoded visible patterns, the data is for the second receiving node.

[0100] One possible advantage of using the near visible light code symbol 924 to identify the intended recipient is that the receiving nodes can more quickly determine whether the data is for them or whether they can ignore the data without having to decode the encoded spatio-temporal pattern set to read the header information. This is beneficial in situations where there are multiple receiving nodes recording or obtaining data.

[0101] In some embodiments, the near visible light code symbol 924 may be used to indicate the priority level for data transmission. For example, if the near visible light code symbol 924 is 'OFF', the priority level for the data is normal, and if the near visible light code symbol 1924 is 'ON', the priority level for the data is high. One possible advantage of using the near visible light code symbol 924 to indicate the priority level for data is that in the case of simultaneously outputting more than one encoded spatio-temporal pattern set on a display device, it is easy to identify an emergency data transmission. Then, the first receiving node may first decode the encoded spatio-temporal pattern set with a higher priority level before decoding the encoded spatio-temporal pattern set with a normal priority level.

[0102] Fig.10 is an example of an encoded spatio-temporal pattern 1014 that includes both visible light and near visible light and at least two colors according to at least one embodiment. For example, the encoded spatio-temporal pattern 1014 may include a first color 1016, a second color 1018, and a near visible light code symbol 1024. In some embodiments, the first color 1016 and the second color 1018 are used to encode data. For example, the first color 1016 and the second color 1018 provide values (such as 1 and 0) that can be encoded by an encoder for encoding data. In Fig.10In the illustrated embodiment, the encoded spatio-temporal pattern 1014 can have a first color 1016 and a second color 1018, where the first color 1016 is white with a value of 1 and the second color 1018 is black with a value of 0.

[0103] In some embodiments, the near-visible light code symbol 1024 is used as header information. The header information can identify the receiver for the data and / or indicate the priority level for the data, as previously explained in connection with Fig. 9 what has been explained.

[0104] Fig.11 is an example of two sets of encoded spatio-temporal patterns with different positions and / or different shapes according to at least one embodiment. The first set of encoded spatio-temporal patterns 1114_1 has 7×7 code symbols, and the second set of encoded spatio-temporal patterns 1114_2 has 6×9 code symbols. In some embodiments, the shape of the set of encoded spatio-temporal patterns can be used as header information. For example, the header information can identify the receiver for the data and / or can indicate the priority level for the data.

[0105] In Fig.11 the illustrated embodiment, the shape of the encoded spatio-temporal pattern 1114 can indicate the intended recipient. In one embodiment, the shape of the encoded spatio-temporal pattern can indicate different receiving nodes. For example, in Fig.11 it, the shape of the encoded spatio-temporal pattern 1114_1 is square, meaning the data is for the first receiving node, while the shape of the encoded spatio-temporal pattern 1114_2 is rectangular, meaning the data is for the second receiving node. In another example, if the shape of the encoded spatio-temporal pattern is hexagonal, the data is for the first receiving node, if the form of the encoded spatio-temporal pattern is triangular, the data is for the second receiving node, and if the shape of the encoded spatio-temporal pattern is circular, the data is for the third receiving node.

[0106] One possible advantage of using the shape to identify the intended recipient is that, for receiving nodes, it is a faster way to decide whether the data is for them or whether they can ignore the data without having to decode the set of encoded spatio-temporal patterns to read the header information. This is beneficial in cases where multiple receiving nodes record or obtain the encoded spatio-temporal patterns.

[0107] In some embodiments, the shape can be used to indicate the priority level for data transmission. For example, if the shape is square, the priority level for the data is normal, while if the shape is not square, the priority level for the data is high. One possible advantage of using the shape to indicate the priority level for data is that in the case of outputting more than one set of encoded spatio-temporal patterns on the screen simultaneously, it is easy to identify emergency data transmissions. Then, the first receiving node can first decode the set of encoded spatio-temporal patterns with a higher priority level before it decodes the set of encoded spatio-temporal patterns with a normal priority level.

[0108] In some embodiments, the position of the set of encoded spatio-temporal patterns on the output device can be used as header information. For example, the header information can identify the receiver for the data, and / or the header information can indicate the priority level for the data.

[0109] In Fig.11 the illustrated embodiment, the position of the encoded spatio-temporal pattern can indicate the intended recipient. For example, in Fig.11 , the encoded spatio-temporal pattern 1114_1 is located at the upper left corner of the display, meaning the data is for the first receiving node, while the encoded spatio-temporal pattern 1114_2 is located at the lower right corner, meaning the data is for the second receiving node. In another example, if the position of the encoded spatio-temporal pattern is in the middle of the display, the data is for the first receiving node, if the position of the encoded spatio-temporal pattern is in the upper right corner, the data is for the second receiving node, and if the position of the encoded spatio-temporal pattern is in the lower left corner, the data is for the third receiving node.

[0110] One possible advantage of using the position to identify the intended recipient is a faster way for the receiving nodes to decide whether the data is for them or whether they can ignore the data without having to decode the set of encoded spatio-temporal patterns to read the header information. This is beneficial in the case where there are multiple receiving nodes recording or obtaining the encoded spatio-temporal patterns.

[0111] In some embodiments, the position can be used to indicate the priority level for data transmission. For example, if the position is close to the bottom of the screen, the priority level for the data is normal, while if the position is close to the top of the screen, the priority level for the data is high. In some embodiments, other positions can be used to indicate the priority level. In some embodiments, the position can change. One possible advantage of using the position to indicate the priority level for data is that in the case of outputting more than one set of encoded spatio-temporal patterns on the screen simultaneously, it is easy to identify emergency data transmissions. Then, the first receiving node can first decode the set of encoded spatio-temporal patterns with a higher priority level before it decodes the set of encoded spatio-temporal patterns with a normal priority level.

[0112] In some embodiments, two or more encoded spatio-temporal pattern sets may originate from a first transmitting node. In some embodiments, two or more encoded spatio-temporal pattern sets may originate from two or more transmitting nodes. In some embodiments, two or more encoded spatio-temporal pattern sets are intended for a first receiving node. In some embodiments, two or more encoded spatio-temporal pattern sets are intended for two or more receiving nodes.

[0113] Fig.12 is an example of two or more encoded spatio-temporal pattern sets transmitted simultaneously according to at least one embodiment. Fig.12 Shows four different data sets that have been encoded as spatio-temporal patterns. The first spatio-temporal pattern 1214_1 consists of a first color 1216 and a second color 1218, the second spatio-temporal pattern 1214_2 consists of the first color 1216 and a third color 1220, the third spatio-temporal pattern 1214_3 consists of the first color 1216 and the second color 1218, and the fourth spatio-temporal pattern consists of the first color 1216 and a fourth color 1220. For example, the first color may be 'OFF' (i.e., no color is displayed in that area), the second color may be red, the third color may be green, and the fourth color may be blue (e.g., pattern 1214_1 consists of red and 'OFF', 1214_2 consists of green and 'OFF', 1214_3 consists of red and 'OFF', and 1214_4 consists of blue and 'OFF'). In some embodiments, the first transmitting node may transmit all four data sets. In some embodiments, the first transmitting node may transmit one or more of the data sets, and the second transmitting node may transmit one or more of the data sets. In some embodiments, each of the four data sets is intended for a separate receiving node. In some embodiments, all four data sets are intended for one and the same receiving node.

[0114] In Fig.12In the illustrated embodiments, each of the four spatio-temporal patterns includes two different colors. In some embodiments, the different colors may indicate different receiving nodes. For example, the second color 1218 is red, so the spatio-temporal patterns 1214_1 and 1214_3 are for the first receiving node, the third color 1220 is green, so the spatio-temporal pattern 1214_2 is for the second receiving node, and the fourth color 1228 is blue, so the temporal pattern 1214_4 is for the third receiving node. One possible advantage of using colors to identify the intended recipient is that it provides a faster way for the receiving node to decide whether the data is for it or whether it can ignore at least a portion of the data without having to decode the set of encoded spatio-temporal patterns to read the potential header information. This is beneficial in cases where multiple receiving nodes obtain at least a portion of the set of encoded spatio-temporal patterns. For example, when the first receiving node receives the spatio-temporal patterns, it only needs to decode 1214_1 and 1214_3 because only these patterns are intended for the first receiving node. Similarly, when the second receiving node receives the spatio-temporal patterns, it only needs to decode 1214_2 because only that pattern is intended for the second receiving node, and similarly, the third receiving node only needs to decode 1214_4.

[0115] In some embodiments, colors may be used to indicate the priority level for data transmission (e.g., at least a portion of the data transmission of all the data being sent). For example, when the color is blue, the priority level for the data is normal, if the color is red, the priority level for the data is high, and if the color is green, the priority level for the data is low. One possible advantage of using colors to indicate the priority level for data is that in cases where more than one set of encoded spatio-temporal patterns are simultaneously output by a display device (e.g., a projection screen or a monitor), it is easy to identify emergency data transmissions. Then, the receiving node can first decode the set of encoded spatio-temporal patterns at a higher priority level before it decodes the set of encoded spatio-temporal patterns at a normal priority level. For example, in Fig.12 the receiving node will be able to detect that 1214_1 and 1214_3 have a higher priority and should be decoded first, while 1214_4 has a lower priority and should be decoded last.

[0116] Fig.13 is an example of two sets of encoded spatio-temporal patterns having different sizes according to at least one embodiment. The first set of encoded spatio-temporal patterns 1314_1 has 7×7 code symbols, and the second set of encoded spatio-temporal patterns 1314_2 has 12×7 code symbols. In some embodiments, the amount of data encoded for a given pattern is smaller. In Fig.13Among them, the spatio-temporal pattern 1314_1 is smaller than the spatio-temporal pattern 1314_2. Therefore, the spatio-temporal pattern 1314_1 transmits a smaller amount of data than the spatio-temporal pattern 1314_2. In some embodiments, the size of the spatio-temporal pattern on the spatio-temporal pattern (e.g., the amount of code symbols it has) can be used as header information. In some embodiments, the header information can identify the receiver for the data. For example, a spatio-temporal pattern with 7×7 code symbols can be for the first receiving node, and a spatio-temporal pattern with 12×7 code symbols can be for the second receiving node. In some embodiments, the header information can indicate the priority level for the data. For example, a spatio-temporal pattern with the least number of code symbols can have a lower priority than a spatio-temporal pattern with the largest number of code symbols. One possible benefit of using spatio-temporal patterns of various sizes is to allow higher-priority data to be received by a given receiving node for processing, thus allowing the sending node to dynamically adjust the encoded data processed by a given node.

[0117] In Fig.13 the illustrated embodiment, the size of the code symbols on the spatio-temporal pattern can indicate the intended recipient. In one embodiment, the size of the code symbols on the spatio-temporal pattern can indicate different receiving nodes. For example, in Fig.13 it, the size of a single code symbol 1316_1 in the encoded spatio-temporal pattern 1314_1 is 10×10 pixels, which means the data is for the first receiving node, and the size of a single code symbol 1316_2 is 15×15 pixels, which means the data encoded in 1314_2 is for the second receiving node. In another embodiment, the size of a single code symbol 1316_1 on the display can be 5×5 pixels, and the size of a single code symbol 1316_2 on the display can be 10×10 pixels. One possible advantage of using size to identify the intended recipient is a faster way for the receiving node to decide whether the data is for them or whether they can ignore the data without having to decode the set of encoded spatio-temporal patterns to read the header information. This is beneficial when there are multiple receiving nodes recording or obtaining the encoded spatio-temporal patterns.

[0118] In some embodiments, the size can be used to indicate the priority level for data transmission. For example, if the size of a single code symbol 1316_1 is small, the priority level for the data is normal, while if the size of a single code symbol 1316_2 is large, the priority level for the data is high. One possible advantage of using size to indicate the priority level for data is that in the case of simultaneously outputting more than one set of encoded spatio-temporal patterns on the screen, it is easy to identify emergency data transmissions. Then, the first receiving node can first decode the encoded spatio-temporal pattern set with a higher priority level before decoding the encoded spatio-temporal pattern set with a normal priority level.

[0119] In some embodiments, the size of an individual code symbol can be adjusted based on bandwidth requirements. For example, the encoded spatio-temporal pattern 1314_1 can have been adjusted to occupy a smaller area on the display to accommodate other simultaneous data transmissions with higher priority.

[0120] In some embodiments, two or more sets of encoded spatio-temporal patterns can originate from a first sending node. In some embodiments, two or more sets of encoded spatio-temporal patterns can originate from two or more sending nodes. In some embodiments, two or more sets of encoded spatio-temporal patterns are intended for a first receiving node. In some embodiments, two or more sets of encoded spatio-temporal patterns are intended for two or more receiving nodes.

[0121] Fig.14A and Fig. 14B are examples of two sets of encoded spatio-temporal patterns displayed at different times according to at least one embodiment. The first set of encoded spatio-temporal pattern 1414_1 has 7×7 code symbols, and the second set of encoded spatio-temporal pattern 1414_2 has 7×7 code symbols. In some embodiments, the transmission time of the encoded spatio-temporal pattern can be used as header information. For example, the header information can identify the receiver for the data.

[0122] In Fig.14A and Fig. 14B the embodiments shown, which of the two encoded spatio-temporal patterns 1414_1 and 1414_2 is visible on the display at a particular time t = 0 ( Fig.14A ) and t = 1 ( Fig. 14B ) can indicate the intended recipient. For example, in Fig.14A , at t = 0, the encoded spatio-temporal pattern 1414_1 is not visible, while the encoded spatio-temporal pattern 1414_2 is visible, which means that the data encoded into the set of encoded spatio-temporal patterns 1414_2 is for the first receiving node, but the data encoded into the set of encoded spatio-temporal patterns 1414_1 is not for the first sending node.

[0123] In Fig. 14B , at t = 1, the encoded spatio-temporal pattern 1414_1 is visible, while the encoded spatio-temporal pattern 1414_2 is not visible, which means that the data encoded into the set of encoded spatio-temporal patterns 1414_1 is for the second receiving node, but the data encoded into the set of encoded spatio-temporal patterns 1414_2 is not for the second receiving node. One possible advantage of using timing to identify the intended recipient is a faster way for the receiving node to decide whether the data is for them or whether they can ignore the data without having to decode the set of encoded spatio-temporal patterns to read the header information. This is beneficial in cases where multiple receiving nodes record or obtain the encoded spatio-temporal patterns.

[0124] In some embodiments, transmission timing is synchronized between a transmitting node and a receiving node by synchronizing the internal clocks of the transmitting and receiving nodes or by mutual synchronization with a third clock. In some embodiments, transmission timing is initiated by using markers, such as a start pattern that is displayed before the start of transmission.

[0125] In some embodiments, two or more sets of encoded spatio-temporal patterns may originate from a first transmitting node. In some embodiments, two or more sets of encoded spatio-temporal patterns may originate from two or more transmitting nodes. In some embodiments, two or more sets of encoded spatio-temporal patterns are intended for a first receiving node. In some embodiments, two or more sets of encoded spatio-temporal patterns are intended for two or more receiving nodes.

[0126] In some embodiments, if the captured image is faster than the displayed image, t = 0, 1, etc. can be determined by the position of the display pattern. For example, information can be moved (e.g., to the right) a distance (e.g., a number of pixels) for each new frame to indicate the passage of time.

[0127] Fig.15 is an example of two sets of encoded spatio-temporal patterns that are partially overlapping according to at least one embodiment. In Fig.15 the illustrated embodiment, the first set of encoded spatio-temporal patterns 1514_1 has 7×7 code symbols, and the second set of encoded spatio-temporal patterns 1514_2 has 6×9 code symbols. The first set of encoded spatio-temporal patterns 1514_1 and the second set of encoded spatio-temporal patterns 1514_2 partially overlap, as shown by the dashed rectangle 1527. This overlap in data transmission is commonly referred to as multiplexing. In this context, spatio-temporal multiplexing is used to describe how more than one stream of encoded spatio-temporal patterns (e.g., two data sets) can be transmitted simultaneously over a spatio-temporal communication channel.

[0128] Each of the two encoded spatio-temporal patterns 1514_1 and 1514_2 includes three different colors; a first color 1516, a second color 1518, and a third color 1520. For example, in Fig.15 it, the first color 1516 may be red, the second color 1518 may be green, and the third color 1520 may be blue. In Fig.15In the illustrated embodiment, five of the code symbols (e.g., code symbols 1528, 1530, 1532, 1534, 1536) in the code symbol overlap each other. The color of code symbol 1528 is the same as the color of code symbol 1520. Therefore, the decoder will be able to conclude that the code symbol 1528 on the encoded spatio-temporal pattern sets 1514_1 and 1514_2 should have the same color as 1520. Code symbol 1530 has a fourth color that is individually different from the three known colors (e.g., colors 1516, 1518, 1520) used for each encoded data set. For example, the encoder can use the fourth color 1530 to encode the combination of the first color 1516 on the first encoded spatio-temporal pattern set 1514_1 and the second color 1518 on the second encoded spatio-temporal pattern set 1514_2. Code symbol 1532 has a fifth color that is different from the three known colors (e.g., colors 1516, 1518, 1520). For example, the encoder can use the fifth color to encode the combination of the first color 1516 on the first encoded spatio-temporal pattern set 1514_1 and the third color 1530 on the second encoded spatio-temporal pattern set 1514_2. Code symbol 1534 has a sixth color that is different from the three known colors (e.g., colors 1516, 1518, 1520). For example, the encoder can use the sixth color to encode the combination of the second color 1518 on the first encoded spatio-temporal pattern set 1514_1 and the first color 1516 on the second encoded spatio-temporal pattern set 1514_2. Code symbol 1536 has a seventh color that is different from the three known colors (e.g., colors 1516, 1518, 1520). For example, the encoder can use the seventh color to encode the combination of the third color 1530 on the first encoded spatio-temporal pattern set 1514_1 and the first color 1516 on the second encoded spatio-temporal pattern set 1514_2. A possible table of color combinations for encoding and decoding is provided below:

[0129]

[0130]

[0131] One possible advantage of overlapping two or more encoded spatio-temporal pattern sets is that more encoded spatio-temporal pattern sets can be simultaneously displayed in a smaller display area compared to displaying each set individually. Therefore, this can increase the bandwidth of the communication channel. This overlap of two or more encoded spatio-temporal pattern sets can be referred to as spatio-temporal multiplexing. In some embodiments, two or more encoded spatio-temporal pattern sets completely overlap.

[0132] In some embodiments, two or more at least partially overlapping sets of encoded spatio-temporal patterns may originate from a first sending node. In some embodiments, two or more at least partially overlapping sets of encoded spatio-temporal patterns may originate from two or more sending nodes. In some embodiments, two or more at least partially overlapping sets of encoded spatio-temporal patterns are intended for a first receiving node. In some embodiments, two or more at least partially overlapping sets of encoded spatio-temporal patterns are intended for two or more receiving nodes.

[0133] Fig.16 is an example of two or more sets of partially overlapping encoded spatio-temporal patterns according to at least one embodiment. Fig.16 Illustrates four different data sets that have been encoded as spatio-temporal patterns (1614_1, 1614_2, 1614_3, 1614_4). The first spatio-temporal pattern 1614_1 consists of a first color 1616 and a second color 1618, the second spatio-temporal pattern 1614_2 consists of the first color 1616 and a third color 1620, the third spatio-temporal pattern 1614_3 consists of the first color 1616 and the second color 1618, and the fourth spatio-temporal pattern 1614_4 consists of the first color 1616 and a fourth color 1630. For example, the first color 1616 may be 'OFF' (i.e., no color is displayed in the area), the second color 1618 may be red, the third color 1620 may be green, and the fourth color 1630 may be blue (e.g., pattern 1614_1 consists of red and 'OFF', 1614_2 consists of green and 'OFF', 1614_3 consists of red and 'OFF', and 1614_4 consists of blue and 'OFF'). In some embodiments, the first sending node may transmit all four data sets. In some embodiments, the first sending node may transmit one or more of the data sets, and the second sending node may transmit one or more of the data sets. In some embodiments, each of the four data sets is intended for a separate receiving node. In some embodiments, all four data sets are intended for one and the same receiving node.

[0134] In Fig.16In the illustrated embodiment, the first spatio-temporal pattern 1614_1 and the second spatio-temporal pattern 1614_2 partially overlap, as shown by the dashed rectangle 1627_1. Similarly, the third spatio-temporal pattern 1614_3 and the fourth spatio-temporal pattern 1614_4 partially overlap, as shown by the dashed rectangle 1627_2. In one embodiment, each overlapping code symbol will reflect two colors of the code symbol on each spatio-temporal pattern in the spatio-temporal pattern. For example, if the overlapping code symbol from the spatio-temporal pattern 1614_3 is red and the overlapping code symbol from the spatio-temporal pattern 1614_3 is blue, the reflected code symbol will reflect both red and blue. For the human eye, the code symbol reflecting both red and blue light may appear purple, but the acquisition device will be able to detect the red and blue light from the same code symbol. Since the spatio-temporal pattern 1614_3 includes red and the spatio-temporal pattern 1614_4 includes blue, the encoder will be able to correctly decode the overlapping code symbol. One possible benefit of overlapping two or more spatio-temporal patterns is to provide flexibility in bandwidth, because partial overlap provides more free space for the display or screen to output even more spatio-temporal patterns.

[0135] In some embodiments, two or more spatio-temporal patterns may at least partially overlap. In some embodiments, two or more spatio-temporal patterns may completely overlap. In some embodiments, all output spatio-temporal patterns may overlap with at least one other spatio-temporal pattern. In some embodiments, only some of the output spatio-temporal patterns among the output spatio-temporal patterns may overlap.

[0136] In Fig.16 In the illustrated embodiment, each of the four spatio-temporal patterns includes two different colors. In some embodiments, the different colors may indicate different receiving nodes. For example, the second color 1618 is red, so the spatio-temporal patterns 1614_1 and 1614_3 are for the first receiving node, the third color 1620 is green, so the spatio-temporal pattern 1614_2 is for the second receiving node, and the fourth color 1630 is blue, so the time pattern 1614_4 is for the third receiving node. One possible advantage of using colors to identify the intended recipient is that it provides a faster way for the receiving node to decide whether the data is for it or whether it can ignore at least part of the data, without having to decode the set of encoded spatio-temporal patterns to read potential header information. This is beneficial in cases where multiple receiving nodes obtain at least a portion of the set of encoded spatio-temporal patterns. For example, when the first receiving node receives the spatio-temporal pattern, it only needs to decode 1614_1 and 1614_3 because only these patterns are intended for the first receiving node. Similarly, when the second receiving node receives the spatio-temporal pattern, it only needs to decode 1614_2 because only this pattern is intended for the second receiving node, and similarly, the third receiving node only needs to decode 1614_4.

[0137] In some embodiments, colors can be used to indicate the priority level for data transmission (e.g., at least a portion of the data transmission of all the data being sent). For example, when the color is blue, the priority level for the data is normal; if the color is red, the priority level for the data is high; and if the color is green, the priority level for the data is low. One possible advantage of using colors to indicate the priority level for data is that in the case where a display device (e.g., a projection screen or a monitor) outputs more than one set of encoded spatio-temporal patterns simultaneously, it is easy to identify emergency data transmissions. Then, the receiving node can first decode the set of encoded spatio-temporal patterns with a higher priority level before decoding the set of encoded spatio-temporal patterns with a normal priority level. For example, in Fig.16 , the receiving node will be able to detect that 1614_1 and 1614_3 have a higher priority and should be decoded first, while 1614_4 has a lower priority and should be decoded last.

[0138] Fig.17A , Fig. 17B and Fig. 17C are examples of sets of encoded spatio-temporal patterns that move in space relative to time according to at least one embodiment. In some embodiments, the position of the spatio-temporal pattern relative to the screen indicates a packet sequence. In some embodiments, each encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns can be displayed at a unique position on the display. For example, the first encoded spatio-temporal pattern in the set of spatio-temporal patterns is displayed at a first position, and the second encoded spatio-temporal pattern in the set of spatio-temporal patterns is displayed at a second position, where the first position and the second position are different. In some embodiments, each encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns is displayed at a position different from any of the other encoded spatio-temporal patterns in the set of encoded spatio-temporal patterns. In some embodiments, every nth spatio-temporal pattern in the set of encoded spatio-temporal patterns can share the same position, while each of the 1 to n - 1 spatio-temporal patterns in the set of encoded spatio-temporal patterns has a unique position on the display.

[0139] In Fig.17A the embodiment shown at t = 0, the first encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns 1714 has a first position relative to the display 1726. As Fig. 17B shown, at t = 1, the second encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns 1714 has a second position relative to the display 1726, where the first position and the second position are different. As Fig. 17CAs shown, at t = 2, the third encoded spatio-temporal pattern in the encoded spatio-temporal pattern set 1714 has a third position relative to the display 1726, where the first position, the second position, and the third position are all different. If the receiving node receives the first encoded spatio-temporal pattern and the third encoded spatio-temporal pattern in the encoded spatio-temporal pattern set 1714, the receiving node can detect that they have missed the second encoded spatio-temporal pattern in the encoded spatio-temporal pattern set 1714.

[0140] In some embodiments, the encoded spatio-temporal pattern can move from a first position to a second position relative to time. In some embodiments, the encoded spatio-temporal pattern can move from a first position to a second position relative to time (from left to right, from right to left, from top to bottom, from bottom to top, from upper left to lower right, from lower left to upper right, etc.). In some embodiments, the encoded spatio-temporal pattern can appear to move randomly relative to time. As long as the decoder knows the expected movement of each encoded spatio-temporal pattern relative to time, the decoder can detect whether they have missed one or more of the encoded spatio-temporal patterns. In some embodiments, the encoded spatio-temporal pattern can move in space in a predetermined pattern relative to time. In some embodiments, encoding data into an encoded spatio-temporal pattern set includes combining Figure 5 two or more different encoding mechanisms described with reference to FIG. 17.

[0141] According to at least one embodiment, Fig.18 is an example of two encoded spatio-temporal pattern sets having different positions, shapes, sizes, at least three different colors, two different intensity levels, and both visible light and near-visible light. The first encoded spatio-temporal pattern set 1814_1 has 7×7 code symbols, and the second encoded spatio-temporal pattern set 1814_2 has 12×7 code symbols. Each code symbol in the first encoded spatio-temporal pattern set 1814_1 occupies a smaller size on the display or projection screen than each code symbol in the second encoded spatio-temporal pattern set 1814_2 on the same display device.

[0142] The first encoded spatio-temporal pattern set 1814_1 includes a first color at a first intensity level 1816_1, a second color at a first intensity level 1818_1, a second color at a second intensity level 1819_1, a third color at a first intensity level 1820_1, and a third color at a second intensity level 1822_1. The second encoded spatio-temporal pattern set 1814_2 includes a first color at a first intensity level 1816_2, a second color at a first intensity level 1818_2, a third color at a first intensity level 1820_2, a third color at a second intensity level 1822_2, and near-visible light 1824_2.

[0143] It should be understood that in combination with Figure 5Any combination of the different encoding mechanisms described up to FIG. 14 can be used to encode and / or decode data. It should be noted that each set of encoded spatio-temporal patterns can use different combinations for encoding data, indicating the intended recipient, indicating the priority for data transmission, other indications, or a combination thereof. For example, in Fig.18 In the illustrated embodiment, the second set of encoded spatio-temporal patterns 1814_2 does not use the second color at the second intensity level, and the first set of encoded spatio-temporal patterns 1814_1 does not use near visible light.

[0144] FIG. 19A to FIG. 19C FIG. illustrates another example of encoding data into a set of encoded spatio-temporal patterns according to at least one embodiment, including combining Figures 5 to 11 two or more of the different encoding mechanisms described. The first set of encoded spatio-temporal patterns 1914_1 has 7×7 code symbols with three different colors, and the second set of encoded spatio-temporal patterns 1914_2 has 7×7 code symbols with three different visible light colors and near visible light 1924. The first set of encoded spatio-temporal patterns 1914_1 moves in space relative to time, while the second set of encoded spatio-temporal patterns 1914_2 has a fixed position. In FIG. 19A to FIG. 19C the illustrated embodiment, every other position of the first set of encoded spatio-temporal patterns 1914_1 is on the left side of the display 1926, while every other position is on the right side of the display screen 1926. At t = 1, the first set of encoded spatio-temporal patterns 1914_1 and the second set of encoded spatio-temporal patterns 1914_2 partially overlap, as shown by the dashed rectangle 1927. The color at the overlapping region can be any of the examples in the examples provided in Fig.15

[0145] FIG. 20A to FIG. 20D FIG. illustrates an example of encoding data into a set of encoded spatio-temporal patterns according to at least one embodiment, where these patterns move in space relative to time. In Fig. 20A the illustrated embodiment at t = 0, the first encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns 2014 that is triangular in shape has a first position relative to the display 2026. As Fig. 20B shown, at t = 1, the second encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns 2014 has a second position relative to the display 2026, where the first position and the second position are different. As Fig. 20C shown, at t = 2, the third encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns 2014 has a third position relative to the display 2026, where the third position is different from any of the previous positions. As Fig.20D shown, at t = 3, the fourth encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns 2014 has a fourth position relative to the display 2026, where the fourth position is different from any of the previous positions. In FIG. 20A to FIG. 20D ​In the illustrated embodiments, the encoded spatio-temporal patterns appear to move randomly between positions at each time interval. As long as the decoder knows the expected movement of each encoded spatio-temporal pattern relative to time, the decoder can detect whether they have missed one or more of the encoded spatio-temporal patterns. For example, if the decoder receives Fig. 20A , Fig. 20B and Fig.20D the encoded spatio-temporal patterns shown, the decoder can detect that they have missed the pattern shown in 20C because the third encoded spatio-temporal pattern should be in the upper left corner, but instead the received third pattern ( Fig.20D ) is in the middle of the screen and they know that the fourth spatio-temporal pattern should be in the middle of the screen.

[0146] The present disclosure includes a number of practical applications that provide benefits associated with methods of transmitting data via free space spatio-temporal patterns and / or solve problems associated with these methods. For example, bandwidth flexibility can be achieved by changing one or more of the number of pixels, number of colors, intensity levels, and frequencies within a data frame. In another example, architectural flexibility can be achieved when a single screen / display can be seen by multiple receiving nodes, or when a single transmitting node can transmit to multiple screens / displays, to allow a single node to select to connect to various other nodes.

[0147] Fig.21 is a thread diagram of a method 2100 for transmitting data in a data center. Various optional steps have been provided in this specification. In some embodiments, one or more or all of the optional steps will be included. In some embodiments, the optional steps are not included. Method 2100 may include transmitting data to an encoder in an optional stage 2140. The data may be of a particular data type. For example, the data type may be numeric, alphanumeric, binary, Chinese characters, any other type of data, or a combination thereof. In some embodiments, transmitting data to the encoder includes transmitting data from a first sending node (as described in more detail below). In some embodiments, the data includes data and header information. For example, it may include one or more of data, destination information, sender information, timing, error correction codes, and any other information typically stored in a packet header. In some embodiments, the data includes only data without any header information.

[0148] In some embodiments, the first sending node may be a server including virtual machines, as described above. In some embodiments, one or more applications may reside on the first sending node. For example, the application for transmitting data may be a word processor, a media player, an email application, accounting software, or any other type of application designed to perform a specific task. In some embodiments, the first sending node may be a storage device. For example, the storage device may include an HDD, an SSD, an optical storage device, any other type of non-volatile storage device for storing data for long-term or short-term retention, or a combination thereof. In some embodiments, obtaining data may include obtaining data from a memory device residing at the first sending node. For example, the memory device may be a ROM, a RAM, a DRAM, an SRAM, or other suitable volatile memory device for temporarily storing data.

[0149] In some embodiments, transmitting data to be encoded includes transmitting two different data sets. For example, a first data set and a second data set may be transmitted from the first sending node to the encoder.

[0150] As Fig.21 shown, method 2100 includes encoding data into a set of spatio-temporal patterns at stage 2142. The spatio-temporal patterns may be patterns observed in both space and time. In some embodiments, the spatio-temporal patterns may be formed by visible light. For example, light having a wavelength from 400 nanometers to 700 nanometers. In some embodiments, the spatio-temporal patterns may be formed by near-visible light. For example, light having a wavelength from 780 nanometers to 1 millimeter (infrared), or light having a wavelength from 100 nanometers to 400 nanometers (ultraviolet). In some embodiments, the spatio-temporal patterns may be formed by other spatial signals (also referred to as invisible signals). For example, the invisible spatial signals generated as spatio-temporal patterns may be formed by electromagnetic waves, microwaves, and / or sound waves.

[0151] Encoding the set of spatio-temporal patterns may include one or more spatio-temporal patterns. In some embodiments, each spatio-temporal pattern in the encoded set of spatio-temporal patterns is a data packet, where each spatio-temporal pattern is transmitted in sequence.

[0152] Encoding data into an encoded set of spatio-temporal patterns may include encoding the first data set and the second data set into a first encoded set of spatio-temporal patterns and a second encoded set of spatio-temporal patterns (as Figure 1E shown at stage 104E), and / or the encoded spatio-temporal patterns may include at least three colors (as Figure 1B shown at stage 104B), a first intensity level and a second intensity level (as Figure 1C shown at stage 104C), visible light and near-visible light (as Figure 1Das shown at stage 104D), or a combination thereof. In some embodiments, the encoded spatio-temporal pattern set (or the first and second encoded spatio-temporal pattern sets) includes two colors. In some embodiments, the encoded spatio-temporal pattern set (or the first and second encoded spatio-temporal pattern sets) includes one color.

[0153] In some embodiments, the data is not serialized before it is encoded. Instead, the data can be sent as unserialized data in matrix form. One possible benefit of transmitting unserialized data is that it does not need to pass through multiple physical or software component layers between applications, thus saving data transmission time. Another possible benefit of transmitting unserialized data is that it can minimize the likelihood of data corruption, data theft, and data throttling.

[0154] In some embodiments, encoding the data into an encoded spatio-temporal pattern set includes encoding the data into code symbols. The code symbols can be organized into an encoded spatio-temporal pattern. For example, the encoded spatio-temporal pattern can include 7×7 code symbols, as previously discussed in connection with Figure 5 In another example, the encoded spatio-temporal pattern can include 6×9 code symbols, as previously discussed in connection with Fig.11 In another example, the encoded spatio-temporal pattern can be organized in other ways, including encoding into a shape without straight edges or a typical geometric shape.

[0155] In some embodiments, encoding the data into code symbols can further include the steps of encoding the data into a bitstream and further encoding the bitstream into code symbols. The bitstream typically includes one or more bits, and the one or more bits can have a value of, for example, 1 or 0.

[0156] In some embodiments, the spatio-temporal pattern may include one or more colors. In some embodiments, the spatio-temporal pattern may include one or more colors that can be produced by visible light (e.g., light having a wavelength from 400 nanometers to 700 nanometers). In some embodiments, the first color may be the color 'ON', and the second color may be the color 'OFF'. For example, in a two-color system, the first color may be white (color 'ON'), and the second color may be black (color 'OFF'). In another example, in a two-color system, the first color may be red (color 'ON'), and the second color may be green (color 'ON'). In yet another example, in a three-color system, the first color may be green (color 'ON'), the second color may be red (color 'ON'), and the third color may be black (color 'OFF'). In yet another example, in a three-color system, the first color may be blue (color 'ON'), the second color may be red (color 'ON'), and the third color may be green (color 'ON'). In some embodiments where the set of encoded spatio-temporal patterns includes at least three colors, at least two of the at least three colors are used to encode data. For example, at least two of the at least three colors provide values (such as 1 and 0) that can be encoded by an encoder for encoding data.

[0157] In some embodiments where the set of encoded spatio-temporal patterns includes at least three colors, all three or more colors can be used to encode data. For example, the system can use three or more bit indicators instead of using a typical two-bit encoding system (1 and 0), where each color represents a unique bit (such as a three-color system or a four-color system when using three-bit or four-bit indicators respectively). In at least one embodiment where at least three different colors are used to encode data, one possible benefit of using a higher-than-two-bit encoding is that it allows data to be encoded more efficiently and the encoded data to be output faster compared to using a two-bit encoding system. Another possible benefit of using three or more colors is to provide flexibility in bandwidth, as more colors used provide a higher bandwidth for data transmission.

[0158] In some embodiments where the set of encoded spatio-temporal patterns includes a first intensity level and a second intensity level, these two different intensity levels are used to encode data. For example, the first intensity level and the second intensity level provide values (such as 1 and 0) that can be encoded by an encoder for encoding data. For example, the set of encoded spatio-temporal patterns may include red at the first intensity level (having a value of 1) and red at the second intensity level (having a value of 0), as previously discussed in connection with Figure 7 discussed.

[0159] In some embodiments where the encoded spatio-temporal pattern set includes a first intensity level and a second intensity level and at least two colors, the two colors are used to encode data. For example, the first color and the second color provide values (such as 1 and 0) that can be encoded by an encoder for encoding data. For example, the encoded spatio-temporal pattern set can include red with a value of 1 and blue with a value of 0, as previously discussed in conjunction with Figure 8 as discussed.

[0160] In some embodiments where the encoded spatio-temporal pattern set includes both visible light and near-visible light, at least two colors are used to encode data, and the near-visible light is used as header information. For example, the first color and the second color provide values (such as 1 and 0) that can be encoded by an encoder for encoding data. For example, the encoded spatio-temporal pattern set can include white with a value of 1 and black with a value of 0, as previously discussed in conjunction with Fig.10 as discussed.

[0161] In some embodiments where the encoded spatio-temporal pattern set includes at least three colors, at least one of the at least three colors is used to provide header information without including the header information in the encoded data itself, and at least two of the at least three different colors are used to encode data. For example, the header information can include information for the recipient of the data, the sender of the data, routing information, priority level information, any other header information, or a combination thereof. In some embodiments where the encoded spatio-temporal pattern set includes at least three colors, at least one of the at least three colors can include header information indicating the intended recipient of the data, as further discussed in conjunction with Figure 5 as further discussed. One possible advantage of using colors to identify the intended recipient is that it provides a faster way for the receiving node to decide whether the data is for it or whether it can ignore at least a portion of the data without having to decode the encoded spatio-temporal pattern set to read the header information in the data. In some embodiments, at least one of the at least three colors can include header information indicating the priority level of the data, as further discussed in conjunction with Figure 5 as further discussed.

[0162] In some embodiments where the encoded spatio-temporal pattern set includes a first intensity level and a second intensity level, at least one intensity level is used to provide header information without the need to include the header information in the encoded data itself, and at least two colors are used to encode the data. In some embodiments where the encoded spatio-temporal pattern set includes a first intensity level and a second intensity level, at least one color is used to provide header information without the need to include the header information in the encoded data itself, and the first intensity level and the second intensity level are used to encode the data. For example, the header information may include information for the recipient of the data, the sender of the data, routing information, priority level information, any other header information, or a combination thereof.

[0163] Although the header information may indicate requirements for using the header, the claims are not limited thereto. In some embodiments, the encoded spatio-temporal pattern set does not include header information. In some embodiments, the data to be encoded does not include a header but includes header information.

[0164] In some embodiments, at least one code symbol among the code symbols in the encoded spatio-temporal pattern may include an intensity level different from another code symbol. For example, the different intensity levels may include header information indicating the intended recipient of at least a portion of the data, as discussed further in Figure 6 In some embodiments, the different intensity levels may include header information indicating the priority level for the data, as discussed further in Figure 6 Further discussion.

[0165] In some embodiments, the spatio-temporal pattern may further include a near-visible light pattern, such as infrared (IR) light (e.g., light having a wavelength from 780 nanometers to 1 millimeter) or ultraviolet (UV) light (e.g., light having a wavelength from 100 nanometers to 400 nanometers). In some embodiments, using near-visible light may indicate the intended recipient for encoding the data, as discussed further in Fig. 9 In some embodiments, using near-visible light may indicate the priority level for the data, as discussed further in Fig. 9 Further discussion. In some embodiments, near-visible light may be used to encode the data.

[0166] In some embodiments, the encoded spatio-temporal pattern may include a shape factor. For example, the shape factor may indicate the intended recipient for the data, as discussed further in Fig.11 In another example, the shape factor may indicate the priority level for the data, as discussed further in Fig.11 Further discussion. In another example, the shape factor may be used to encode the data.

[0167] In some embodiments, encoding a spatio-temporal pattern may include a location factor. For example, the location factor may indicate an intended recipient for the data, as further discussed in conjunction with Fig.11 as further discussed. In another example, the location factor may indicate a priority level for the data, as further discussed in conjunction with Fig.11 as further discussed. In some embodiments, encoding a spatio-temporal pattern may include a size factor, as further discussed in conjunction with Fig.13 as further discussed. In another example, the size factor may be used to encode data. One possible benefit of using spatio-temporal patterns of different sizes is to provide flexibility in bandwidth, since using a larger size spatio-temporal pattern provides higher bandwidth for data transmission.

[0168] In some embodiments, encoding a spatio-temporal pattern may include a timing factor, as further discussed in conjunction with FIG. 14A to FIG. 14B as further discussed. For example, the timing factor may indicate an intended recipient for the data, as further discussed in conjunction with FIG. 14A to FIG. 14B as further discussed. In some embodiments, the encoded spatio-temporal pattern may move in space relative to time, as further discussed in conjunction with 17A to 17C as further discussed.

[0169] Method 2100 may include transmitting a set of encoded spatio-temporal patterns to a display at optional stage 2144. For example, the set of encoded spatio-temporal patterns may be wirelessly transmitted to the display via a cable or fiber optic.

[0170] Method 2100 then includes displaying the set of encoded spatio-temporal patterns at stage 2146. In some embodiments, method 2100 includes displaying a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns at stage 2146.

[0171] In some embodiments, the set of encoded spatio-temporal patterns may be displayed by at least one device capable of displaying, reflecting, or transmitting and reflecting light. For example, a display device capable of reflecting light may be a projection screen, and a display device capable of transmitting and reflecting light may be a rear projection screen. Additionally, a display device capable of displaying light may be a computer screen, a TV monitor, or any other display device capable of displaying light. In some embodiments, the set of encoded spatio-temporal patterns may be displayed by a display device not optimized for human vision. For example, with the advancement of technology, spatio-temporal patterns may be displayed by a display device capable of displaying microwaves, infrared, ultraviolet, x-rays, gamma rays, or any other wavelength in the electromagnetic spectrum.

[0172] One limitation of a display device capable of displaying or a projector capable of projecting is the device refresh rate. Typical TV refresh rates are between 60 and 120 Hz, while projector refresh rates can reach 120 to 240 Hz. Gaming monitors typically need to have a high refresh rate, some reaching 360 Hz. Currently, the highest known non-commercial experimental displays have a 10 kHz refresh rate, but it is expected that these refresh rates will increase in the future as technology advances. One possible advantage of having a higher refresh rate on at least one embodiment of a display device is that more data can be output faster, and thus the bandwidth of the communication channel can be increased.

[0173] In some embodiments, the display-coded spatio-temporal pattern set further includes displaying at least a portion of the coded pattern set to a display device having a bi-directional screen. A bi-directional screen (such as a projection screen) enables information transmission both away from the transmitting projector and transmitting node and back to the transmitting node and associated acquisition device, as discussed in conjunction with Figure 4 One possible advantage of using a bi-directional screen is that it enables the transmitting node to verify whether the data transmission has been successfully sent (e.g., without any corruption, overlap with other transmissions, or any other deviation). In some embodiments, the transmitting node can observe from the bi-directional screen that there is additional bandwidth available in the form of blank screen space and extend its transmission size to increase the transmission rate.

[0174] In some embodiments, the projection screen is a rear projection screen where the projected image is visible on both sides of the screen. A rear projection screen can both reflect light and transmit light. The reflection of light occurs on the same side of the screen where the projector is located, while when the screen transmits light, the image is visible on the opposite side of the screen. This increases the pool of receiving nodes. One possible advantage of using a rear projection screen is that it enables the transmitting node to verify whether the data transmission has been successfully sent (e.g., without any corruption, overlap with other transmissions, or any other deviation). Another possible advantage of using a rear projection screen is that it can enable a larger pool of transmitting and receiving nodes to send and receive data. For example, data can be transmitted from a transmitting node to a receiving node, where the receiving node can be anywhere behind, near, or in front of the transmitting node. In some embodiments, the transmitting node can observe from the rear projection screen that there is additional bandwidth available in the form of blank screen space and extend its transmission size to increase the transmission rate.

[0175] In some embodiments, the display-coded spatio-temporal pattern set further includes displaying the output coded spatio-temporal pattern set on two or more display devices, as previously discussed in conjunction with FIG. 3A to FIG. 3B as discussed.

[0176] In some embodiments, two or more coded spatio-temporal pattern sets are displayed. In some embodiments, the two or more coded spatio-temporal pattern sets at least partially overlap, as previously discussed in conjunction with Fig.15 as discussed

[0177] As Fig.21 shown, method 2100 includes obtaining, in space-time, a set of encoded spatio-temporal patterns (or a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns) (e.g., the set of encoded spatio-temporal patterns encoded at stage 2142) at stage 2148. Obtaining the set of encoded spatio-temporal patterns in space-time can include obtaining a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns in space-time, and / or the spatio-temporal patterns can include at least three colors, a first intensity level and a second intensity level, visible light and near-visible light, or a combination thereof. In some embodiments, the set of encoded spatio-temporal patterns (or the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns) includes two colors. In some embodiments, the set of encoded spatio-temporal patterns (or the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns) includes one color.

[0178] In some embodiments, obtaining the set of encoded spatio-temporal patterns in space-time includes obtaining, in space-time, the set of encoded spatio-temporal patterns output by at least one display device capable of displaying or transmitting and reflecting light, as described herein. In some embodiments, obtaining the set of encoded spatio-temporal patterns (or the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns) in space-time includes obtaining (e.g., capturing, detecting, identifying) in space-time via an obtaining device. For example, the obtaining device can be a camera, a video camera, an image sensor, or any other device capable of obtaining spatio-temporal images alone or in combination with other devices.

[0179] In some embodiments, the obtaining device can capture at least the same (or higher) (multiple) frame rate as the display device is capable of outputting to reduce or prevent data loss. In some embodiments, the obtaining device can have a higher frame rate than the display device, which can facilitate data transmission at the maximum frame rate of the display device.

[0180] In some embodiments, there can be more than one obtaining device obtaining the set of encoded spatio-temporal patterns, as previously discussed in connection with FIG. 3A to FIG. 3B as discussed. For example, in some embodiments, where data is intended to be broadcast to multiple nodes, a first transmitting node can output the data, and multiple receiving nodes can simultaneously obtain the broadcast data from a display device (e.g., a single display device) without the data passing through a central router. In some embodiments, only one (e.g., a single) obtaining device can be used for only one (e.g., a single) display device (e.g., the 1:1 ratio of the obtaining device to the display device is). In some embodiments, there can be two or more obtaining devices for a single display device, as previously discussed in connection with FIG. 3A to FIG. 3BAs discussed. In some embodiments, the acquisition device can capture both visible light and near-visible light (such as IR and UV). In some embodiments, there can be a first acquisition device capable of capturing visible light and a second acquisition device capable of capturing near-visible light.

[0181] Method 2100 can then include transmitting, at optional stage 2150, a set of encoded spatio-temporal patterns including at least three different colors from an acquisition device (such as a camera) to a decoder.

[0182] As Fig.21 shown, method 2100 then includes decoding, at stage 2152, the set of encoded spatio-temporal patterns (the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns) into data. In some embodiments, decoding the set of encoded spatio-temporal patterns includes decoding at least three colors, as previously discussed in connection with Figure 2B As discussed. In some embodiments, decoding the set of encoded spatio-temporal patterns includes decoding a first intensity level and a second intensity level, as previously discussed in connection with Figure 2C As discussed. In some embodiments, decoding the set of encoded spatio-temporal patterns includes decoding visible light and near-visible light, as previously discussed in connection with Figure 2D As discussed. In some embodiments, decoding the set of encoded spatio-temporal patterns includes decoding two colors. In some embodiments, decoding the set of encoded spatio-temporal patterns includes decoding one color. In some embodiments, decoding the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns includes decoding a first decoded data set and a second decoded data set, as previously discussed in connection with Figure 2E As discussed.

[0183] In some embodiments, the decoded data is unserialized data in matrix form. One possible benefit of transmitting unserialized data is that it does not require passing through multiple physical or software component layers between applications, thus saving data transmission time. Another possible benefit of transmitting unserialized data is that the likelihood of data corruption, data theft, and data throttling can be minimized.

[0184] In some embodiments, decoding one or more sets of encoded spatio-temporal patterns into decoded data includes decoding one or more of the encoded spatio-temporal patterns disclosed herein.

[0185] In some embodiments, decoding a set of encoded spatio-temporal patterns into decoded data includes decoding code symbols into decoded data. As described herein, code symbols can be organized into encoded spatio-temporal patterns. In some embodiments, decoding code symbols into data can also include decoding code symbols into a bitstream and decoding the bitstream into data, as described herein.

[0186] Method 2100 may further include transmitting the decoded data to the first receiving node at optional stage 2154. In some embodiments, two or more data sets are transmitted to the first receiving node. The first receiving node may be a server that includes virtual machines that provide web search, website hosting, system updates, application development and testing, or other suitable computing services to users. In some embodiments, one or more applications may reside on the first receiving node. For example, the application that receives the data may be a word processor, a media player, an email application, accounting software, or any other type of application designed to perform a specific task. In some embodiments, the first receiving node may be a storage device.

[0187] Method 2100 may further include storing the decoded data (or the first decoded data and the second decoded data) at the first receiving node at optional stage 2155. In some embodiments, storing the decoded data includes storing the data into a storage device residing at one or more receiving nodes, as previously discussed in connection with FIG. 3A to FIG. 3B For example, the storage device may include an HDD, an SSD, an optical storage device, any other type of non-volatile storage device for storing data for long-term or short-term retention, or a combination thereof. In some embodiments, storing the data may include storing the data into a memory device residing at the first receiving node. For example, the memory device may be a ROM, a RAM, a DRAM, an SRAM, or any other suitable volatile memory device for temporarily storing data, or a combination thereof. In some embodiments, storing the decoded data further includes storing the decoded data into a buffer and further transmitting the data to another receiving node.

[0188] In some embodiments, the first sending node and the encoder may be the same physical network device. In some embodiments, the first sending node and the encoder may be separate physical network devices. In some embodiments, the first receiving node and the decoder may be the same physical network device. In some embodiments, the first receiving node and the decoder may be separate physical network devices.

[0189] Fig. 22 is a thread diagram illustrating method 2200 for transmitting two or more data sets in a data center. Method 2200 may include transmitting a first data set and a second data set from a first sending node to an encoder at optional stage 2240 (similar to stage 2140 explained in connection with Fig.21 In some embodiments, method 2200 may include transmitting a first data set from a first sending node to an encoder at stage 2240 and transmitting a second data set from a second sending node to the encoder at optional stage 2241. In some embodiments, the first data set may be transmitted to a first encoder and the second data set may be transmitted to a second encoder.

[0190] As Fig. 22 shown, method 2200 then includes the encoder encoding the first data set and the second data set into a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns at stage 2242. In some embodiments, the encoding method may be similar to the encoding step 2142 discussed in connection with Fig.21 .

[0191] Method 2200 may include transmitting the first data set and the second data set from the encoder to the display device at optional stage 2244 (similar to stage 2144 explained in connection with Fig.21 ). As Fig. 22 shown, method 2200 then includes the display device displaying the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns at stage 2246. In some embodiments, the display method may be similar to the display step 2146 discussed in connection with Fig.21 . As Fig. 22 shown, method 2200 then includes obtaining the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns from the display device at stage 2248. In some embodiments, the obtaining method may be similar to the obtaining step 2148 discussed in connection with Fig.21 . In some embodiments, there may be two or more obtaining devices obtaining one or more of the encoded spatio-temporal patterns in the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns.

[0192] Method 2200 may include transmitting the first data set and the second data set from the obtaining device to the decoder at optional stage 2250 (similar to stage 2150 explained in connection with Fig.21 ). In some embodiments, the first set of encoded spatio-temporal patterns is transmitted to the first decoder, and the second set of encoded spatio-temporal patterns is transmitted to the second decoder.

[0193] As Fig. 22 shown, method 2200 then includes the decoder decoding the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns into a first decoded data set and a second decoded data set at stage 2252. In some embodiments, the decoding method may be similar to the decoding stage 2150 discussed in connection with Fig.21 .

[0194] Method 2200 may include transmitting the first data set and the second data set from the decoder to the first receiving node at optional stage 2254 (similar to stage 2154 explained in connection with Fig.21 ). In some embodiments, the first data set is transmitted to the first receiving node at stage 2254, and the second data set is transmitted to the second receiving node at stage 2245.

[0195] Fig.23is a flowchart illustrating a method of transmitting data in a data center, where a sending node can verify whether the data is correctly transmitted. As Fig.23 shown, method 2300 includes an encoder encoding data into a set of encoded spatio-temporal patterns in stage 2342. In some embodiments, the encoding method is similar to the encoding step 2142 discussed in conjunction with Fig.21 Method 2300 then includes outputting the set of encoded spatio-temporal patterns in stage 2346. In some embodiments, the output method is similar to the display step 2146 discussed in conjunction with Fig.21 discussed.

[0196] In Fig.23 the flowchart shown, the set of encoded spatio-temporal patterns output at stage 2346 is then captured by a device at the sending node in stage 2356 and captured by a device at the receiving node in stage 2348. One possible benefit of allowing the sending node to capture the data transmission is to verify whether the data is correctly output and whether there is a conflict with other transmissions, without the need for the receiving node to notify the sending node of errors in the data transmission. Another possible benefit of allowing the sending node to capture the data transmission is to implement transmission correction, such as moving the position of the spatio-temporal pattern to avoid overlapping with other spatio-temporal patterns. Method 2300 also includes decoding the set of encoded spatio-temporal patterns into decoded data in stage 2358. For example, the device at the sending node can decode the set of encoded spatio-temporal patterns, or it can deliver the captured set of encoded spatio-temporal patterns to a decoder for decoding. After the sending node decodes the set of encoded spatio-temporal patterns, if the data is correctly output, the sending node may take no action, or if the data is incorrectly output, the sending node may retransmit the data to the encoder in stage 2362.

[0197] The following are items according to embodiments of the present disclosure:

[0198] A1. A method for encoding data in a data center, comprising:

[0199] obtaining data to be encoded;

[0200] encoding the data into a set of encoded spatio-temporal patterns including at least three colors; and outputting the set of encoded spatio-temporal patterns.

[0201] A2. The method of item A1, wherein the data is obtained from a first sending node.

[0202] A3. The method of item A2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0203] A4. The method of any one of items A1 to A3, wherein the data includes a first data set and a second data set.

[0204] A5. A method for item A4, wherein the first data set and the second data set are obtained from a first sending node.

[0205] A6. A method for any one of items A4 or A5, wherein the first data set is obtained from a first sending node, and the second data set is obtained from a second sending node.

[0206] A7. A method for any one of items A1 to A6, wherein the data is non-serialized data.

[0207] A8. A method for any one of items A1 to A7, wherein encoding the data into a set of encoded spatio-temporal patterns includes encoding the data into code symbols.

[0208] A9. A method for item A8, wherein the code symbols are organized into encoded spatio-temporal patterns.

[0209] A10. A method for any one of items A8 or A9, wherein encoding the data into code symbols further includes encoding the data into a bit stream and encoding the bit stream into code symbols.

[0210] A11. A method for item A8, wherein the first code symbol includes a first intensity level, and the second code symbol includes a second intensity level.

[0211] A12. A method for item A11, wherein at least one of the first intensity level or the second intensity level is used to provide header information.

[0212] A13. A method for item A12, wherein the header information indicates the intended recipient of the data.

[0213] A14. A method for item A12, wherein the header information indicates the priority level for the data.

[0214] A15. A method for any one of items A1 to A14, wherein the set of encoded spatio-temporal patterns includes colors that can be produced by visible light.

[0215] A16. A method for any one of items A1 to A15, wherein at least two of at least three colors are used to encode the data.

[0216] A17. A method for any one of items A1 to A10 and A15 to 16, wherein at least one of at least three colors is used to provide header information.

[0217] A18. A method for item A17, wherein the header information indicates the intended recipient of the data.

[0218] A19. A method for any one of items A17 or A18, wherein the header information indicates the priority level for the data.

[0219] A method for any one of items A1 to A19, wherein the encoded spatio-temporal pattern set includes one or more of visible light and near-visible light.

[0220] A21. The method of item A20, wherein the near-visible light is one or more of UV light and IR light.

[0221] A22. The method of any one of items A20 or A21, wherein the near-visible light indicates the intended recipient of the data.

[0222] A23. The method of any one of items A20 to A22, wherein the near-visible light indicates the priority level of the data.

[0223] A24. The method of any one of items A1 to A23, wherein the encoded spatio-temporal pattern set further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0224] A25. The method of item A24, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates the intended recipient of the data.

[0225] A26. The method of any one of items A24 or A25, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority level of the data.

[0226] A27. The method of any one of items A21 to A26, wherein the encoded spatio-temporal pattern set moves in space relative to time.

[0227] A28. The method of item A27, wherein the encoded spatio-temporal pattern set moves in a predetermined pattern.

[0228] A29. The method of any one of items A1 to A28, further comprising displaying the encoded spatio-temporal pattern set of the output.

[0229] A30. The method of item A29, wherein the encoded spatio-temporal pattern set of the displayed output includes being displayed by a projector onto a screen.

[0230] A31. The method of any one of items A29 or A30, wherein the encoded spatio-temporal pattern set of the displayed output includes being displayed by at least one of a computer screen and a TV monitor.

[0231] A32. The method of any one of items A29 to A31, wherein the encoded spatio-temporal pattern set of the displayed output includes being displayed on two or more displays.

[0232] A33. The method of any one of items A29 to A32, wherein the encoded spatio-temporal pattern set of the displayed output includes displaying two or more encoded spatio-temporal pattern sets.

[0233] A method for item A33, wherein at least two encoded spatio-temporal pattern sets overlap at least partially.

[0234] B1. A method for decoding data in a data center, comprising:

[0235] Obtaining, spatio-temporally, an encoded spatio-temporal pattern set including at least three colors;

[0236] Decoding the encoded spatio-temporal pattern set into decoded data; and

[0237] Storing the decoded data.

[0238] B2. The method of item B1, wherein obtaining the encoded spatio-temporal pattern set spatio-temporally includes obtaining from at least one of a display and a projection screen.

[0239] B3. The method of item B2, wherein the display is at least one of a computer screen and a TV monitor.

[0240] B4. The method of any one of items B1 to B3, wherein obtaining the encoded spatio-temporal pattern set spatio-temporally includes obtaining by at least one of a camera, a video camera, and an image sensor.

[0241] B5. The method of item B4, wherein at least one of the camera, the video camera, and the image sensor is capable of capturing visible light and near-visible light.

[0242] B6. The method of any one of items B1 to B5, wherein obtaining the encoded spatio-temporal pattern set spatio-temporally includes obtaining by a first camera and a second camera.

[0243] B7. The method of item B6, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0244] B8. The method of any one of items B1 to B7, wherein the decoded data is unsequenced data in matrix form.

[0245] B9. The method of any one of items B1 to B8, wherein the encoded spatio-temporal pattern set includes code symbols.

[0246] B10. The method of item B9, wherein decoding the encoded spatio-temporal pattern set into decoded data includes decoding the code symbols into data.

[0247] B11. The method of item B10, wherein decoding the code symbols into decoded data further includes decoding the code symbols into a bit stream and decoding the bit stream into data.

[0248] B12. The method of any one of items B1 to B11, wherein the encoded spatio-temporal pattern set includes colors producible by visible light.

[0249] A method according to any one of items B1 to B12, wherein at least two of at least three colors are used to decode data.

[0250] A method according to any one of items B1 to B12, wherein at least one of at least three colors is used to provide header information.

[0251] A method according to item B14, wherein the header information indicates the intended recipient for the data.

[0252] A method according to item B14, wherein the header information indicates the priority level for the data.

[0253] A method according to any one of items B9 to B11, wherein at least one code symbol includes an intensity level different from that of another code symbol.

[0254] A method according to item B17, wherein at least one intensity level is used to provide header information.

[0255] A method according to item B18, wherein the header information indicates the intended recipient for the data.

[0256] A method according to item B18, wherein the header information indicates the priority level for the data.

[0257] A method according to any one of items B1 to B20, wherein the set of encoded spatio-temporal patterns includes one or more of visible light and near-visible light.

[0258] A method according to item B21, wherein the near-visible light is one or more of UV light and IR light.

[0259] A method according to any one of items B21 or B22, wherein the near-visible light indicates the intended recipient for the data.

[0260] A method according to any one of items B21 or B22, wherein the near-visible light indicates the priority level for the data.

[0261] A method according to any one of items B1 to B24, wherein the set of encoded spatio-temporal patterns further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0262] A method according to item B25, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates the intended recipient for the data.

[0263] A method according to item B25, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority level for the data.

[0264] A method according to any one of items B1 to B27, wherein the encoded spatio-temporal pattern set moves in space relative to time.

[0265] A method according to item B28, wherein the encoded spatio-temporal pattern set moves in a predetermined pattern.

[0266] A method according to any one of items B1 to B29, wherein storing the decoded data includes storing it to a storage device.

[0267] C1. A method for transmitting data in a data center, comprising:

[0268] Encoding the data into an encoded spatio-temporal pattern set including at least three colors;

[0269] Displaying the encoded spatio-temporal pattern set;

[0270] Obtaining the encoded spatio-temporal pattern set in spatio-temporal; and

[0271] Decoding the encoded spatio-temporal pattern set into data.

[0272] A method according to item C1, further comprising obtaining data from a first sending node.

[0273] A method according to item C2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0274] A method according to any one of items C1 to C3, wherein the data includes a first data set and a second data set.

[0275] A method according to item C4, wherein the first data set and the second data set are obtained from the first sending node.

[0276] A method according to any one of items C4 or C5, wherein the first data set is still obtained from the first sending node, and the second data set is obtained from a second sending node.

[0277] A method according to any one of items C1 to C6, wherein the data is non-serialized data.

[0278] A method according to any one of items C1 to C7, wherein encoding the data into an encoded spatio-temporal pattern set includes encoding the data into code symbols.

[0279] A method according to item C8, wherein the code symbols are organized into an encoded spatio-temporal pattern set.

[0280] A method according to any one of items C8 or C9, wherein encoding the data into code symbols further includes encoding the data into a bit stream and encoding the bit stream into code symbols.

[0281] A method according to any one of C1 to C10, wherein the set of encoded spatio-temporal patterns includes colors producible by visible light.

[0282] A method according to any one of C1 to C11, wherein at least two of the at least three colors are used to encode data.

[0283] A method according to any one of C1 to C12, wherein at least one of the at least three colors is used to provide header information.

[0284] The method of C13, wherein the header information indicates the intended recipient for the data.

[0285] The method of C13, wherein the header information indicates the priority level for the data.

[0286] A method according to any one of C8 to C10, wherein at least one code symbol includes an intensity level different from another code symbol.

[0287] The method of C16, wherein at least one intensity level is used to provide header information.

[0288] The method of C17, wherein the header information indicates the intended recipient for the data.

[0289] The method of C17, wherein the header information indicates the priority level for the data.

[0290] A method according to any one of C1 to C19, wherein the set of encoded spatio-temporal patterns includes one or more of visible light and near-visible light.

[0291] The method of C20, wherein the near-visible light is one or more of UV light and IR light.

[0292] The method of any one of C20 or C21, wherein the near-visible light indicates the intended recipient for the data.

[0293] The method of any one of C20 or C21, wherein the near-visible light indicates the priority level for the data.

[0294] A method according to any one of C1 to C23, wherein the set of encoded spatio-temporal patterns further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0295] The method of C24, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates the intended recipient for the data.

[0296] A method according to any one of C24 or C25, wherein at least one of a shape factor, a position factor, and a size factor indicates a priority level for data.

[0297] A method according to any one of C1 to C26, wherein the encoded spatio-temporal pattern set in the encoded spatio-temporal pattern set moves in space with respect to time.

[0298] A method according to C27, wherein the encoded spatio-temporal pattern set in the encoded spatio-temporal pattern set moves in a predetermined pattern.

[0299] A method according to any one of C1 to C28, wherein displaying the encoded spatio-temporal pattern set includes displaying by a projector onto a screen.

[0300] A method according to any one of C1 to C28, wherein displaying the encoded spatio-temporal pattern set includes displaying by at least one of a computer screen and a TV monitor.

[0301] A method according to any one of C1 to C30, wherein displaying the encoded spatio-temporal pattern set includes displaying on two or more displays.

[0302] A method according to any one of C1 to C31, wherein displaying the encoded spatio-temporal pattern set includes displaying two or more encoded spatio-temporal pattern sets.

[0303] A method according to C32, wherein two or more encoded spatio-temporal pattern sets at least partially overlap.

[0304] A method according to any one of C1 to C33, wherein obtaining the encoded spatio-temporal pattern set spatio-temporally includes obtaining by at least one of a camera, a video camera, and an image sensor.

[0305] A method according to C34, wherein at least one of the camera, the video camera, and the image sensor is capable of capturing visible light and near-visible light.

[0306] A method according to any one of C1 to C35, wherein obtaining the encoded spatio-temporal pattern set spatio-temporally includes obtaining by a first camera and a second camera.

[0307] A method according to C36, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0308] A method according to any one of C8 to C10, wherein decoding the encoded spatio-temporal pattern set into data includes decoding code symbols into data.

[0309] The method of item C38, wherein decoding the code symbol into data further includes decoding the code symbol into a bit stream and decoding the bit stream into data.

[0310] The method of any one of items C1 to C39, further including storing the decoded data in a storage device.

[0311] The method of item C2, wherein the first sending node is configured to obtain a set of encoded spatio-temporal patterns.

[0312] The method of item C41, further including a first sending node configured to verify whether the data is correctly output from the obtained set of encoded spatio-temporal patterns.

[0313] The method of item C42, wherein the first sending node is configured to re-send the data if the data is incorrectly output.

[0314] A method for encoding data in a data center, including:

[0315] Obtaining the data to be encoded;

[0316] Encoding the data into a set of encoded spatio-temporal patterns including a first intensity level and a second intensity level; and

[0317] Outputting the set of encoded spatio-temporal patterns.

[0318] The method of item D1, wherein the data is obtained from a first sending node.

[0319] The method of item D2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0320] The method of any one of items D1 to D3, wherein the data includes a first data set and a second data set.

[0321] The method of item D4, wherein the first data set and the second data set are obtained from a first sending node.

[0322] The method of item D4, wherein the first data set is obtained from a first sending node, and the second data set is obtained from a second sending node.

[0323] The method of any one of items D1 to D6, wherein the data is non-serialized data.

[0324] The method of any one of items D1 to D7, wherein encoding the data into a set of encoded spatio-temporal patterns includes encoding the data into code symbols.

[0325] Method of item D9, wherein the code symbols are organized into an encoded spatio-temporal pattern.

[0326] Method of any one of items D8 or D9, wherein encoding the data into code symbols further includes encoding the data into a bitstream and encoding the bitstream into code symbols.

[0327] Method of any one of items D1 to D10, wherein the set of encoded spatio-temporal patterns includes at least one color producible by visible light.

[0328] Method of any one of items D1 to D10, wherein the set of encoded spatio-temporal patterns includes at least two colors producible by visible light.

[0329] Method of any one of items D1 to D12, wherein a first intensity level and a second intensity level are used to encode the data.

[0330] Method of item D12, wherein at least two colors are used to encode the data.

[0331] Method of any one of items D1 to D12, wherein at least one intensity level is used to provide header information.

[0332] Method of item D11, wherein at least one color is used to provide header information.

[0333] Method of any one of items D15 or D16, wherein the header information indicates the intended recipient for the data.

[0334] Method of any one of items D15 or D16, wherein the header information indicates the priority level for the data.

[0335] Method of any one of items D1 to D18, wherein the set of encoded spatio-temporal patterns further includes near-visible light.

[0336] Method of item D19, wherein the near-visible light is one or more of UV light and IR light.

[0337] Method of any one of items D19 to D20, wherein the near-visible light indicates the intended recipient for the data.

[0338] Method of any one of items D19 to D20, wherein the near-visible light indicates the priority level for the data.

[0339] Method of any one of items D1 to D22, wherein the set of encoded spatio-temporal patterns further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0340] A method for item D24, wherein at least one of a shape factor, a position factor, a size factor, and a timing factor indicates an intended recipient for data.

[0341] A method for any one of items D23 to D24, wherein at least one of a shape factor, a position factor, and a size factor indicates a priority level for data.

[0342] A method for any one of items D1 to D25, wherein the encoded spatio-temporal pattern set in the encoded spatio-temporal pattern sets moves in space relative to time.

[0343] A method for item D26, wherein the encoded spatio-temporal pattern set in the encoded spatio-temporal pattern sets moves in a predetermined pattern.

[0344] A method for any one of items D1 to D27, wherein the output encoded spatio-temporal pattern set further includes a displayed output encoded spatio-temporal pattern set.

[0345] A method for item D28, wherein the displayed output encoded spatio-temporal pattern set includes being displayed by a projector onto a screen.

[0346] A method for any one of items D28 or D29, wherein the displayed output encoded spatio-temporal pattern set includes being displayed by at least one of a computer screen and a TV monitor.

[0347] A method for any one of items D28 to D30, wherein the displayed output encoded spatio-temporal pattern set includes being displayed on two or more displays.

[0348] A method for any one of items D28 to D31, wherein the displayed output encoded spatio-temporal pattern set includes displaying two or more encoded spatio-temporal pattern sets.

[0349] A method for item D32, wherein the two or more encoded spatio-temporal pattern sets at least partially overlap.

[0350] E1. A method for decoding data in a data center, comprising:

[0351] Obtaining, spatio-temporally, an encoded spatio-temporal pattern set including a first intensity level and a second intensity level;

[0352] Decoding the encoded spatio-temporal pattern set into decoded data; and

[0353] Storing the decoded data.

[0354] A method for item E1, wherein obtaining the encoded spatio-temporal pattern set spatio-temporally includes obtaining from at least one of a display and a projection screen.

[0355] Method of item E2, wherein the display is at least one of a computer screen and a TV monitor.

[0356] Method of any one of items E1 to E3, wherein obtaining the set of encoded spatio-temporal patterns in spatio-temporal is obtained by at least one of a camera, a video camera, and an image sensor.

[0357] Method of item E4, wherein at least one of the camera, the video camera, and the image sensor is capable of capturing visible light and near-visible light.

[0358] Method of any one of items E1 to E5, wherein obtaining the set of encoded spatio-temporal patterns in spatio-temporal includes obtaining by a first camera and a second camera.

[0359] Method of item E6, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0360] Method of any one of items E1 to E7, wherein the decoded data is non-serialized data in matrix form.

[0361] Method of any one of items E1 to E8, wherein the set of encoded spatio-temporal patterns includes code symbols.

[0362] Method of item E9, wherein decoding the set of encoded spatio-temporal patterns into decoded data includes decoding the code symbols into data.

[0363] Method of item E10, wherein decoding the code symbols into data further includes decoding the code symbols into a bitstream and decoding the bitstream into data.

[0364] Method of any one of items E1 to E11, wherein the set of encoded spatio-temporal patterns includes colors producible by visible light.

[0365] Method of item E12, wherein at least two colors are used to decode the data.

[0366] Method of any one of items E1 to E13, wherein a first intensity level and a second intensity level are used to decode the data.

[0367] Method of any one of items E12 to E14, wherein at least one color is used to provide header information.

[0368] Method of item E15, wherein the header information indicates the intended recipient for the data.

[0369] Method of item E15, wherein the header information indicates the priority level for the data.

[0370] A method of any one of items E1 to E17, wherein at least one intensity level is used to provide header information.

[0371] E19. The method of item E18, wherein the header information indicates an intended recipient for the data.

[0372] E20. The method of item E18, wherein the header information indicates a priority level for the data.

[0373] E21. The method of any one of items E1 to E20, wherein the set of encoded spatio-temporal patterns includes one or more of visible light and near-visible light.

[0374] E22. The method of item E21, wherein the near-visible light is one or more of UV light and IR light.

[0375] E23. The method of any one of items E21 or E22, wherein the near-visible light indicates an intended recipient for the data.

[0376] E24. The method of any one of items E21 or E22, wherein the near-visible light indicates a priority level for the data.

[0377] E25. The method of any one of items E1 to E24, wherein the set of encoded spatio-temporal patterns further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0378] E26. The method of item E25, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates an intended recipient for the data.

[0379] E27. The method of any one of items E25 or E26, wherein at least one of the shape factor, the position factor, and the size factor indicates a priority level for the data.

[0380] E28. The method of any one of items E1 to E27, wherein the set of encoded spatio-temporal patterns in the set of encoded spatio-temporal patterns moves in space relative to time.

[0381] E29. The method of item E28, wherein the set of encoded spatio-temporal patterns in the set of encoded spatio-temporal patterns moves in a predetermined pattern.

[0382] E30. The method of any one of items E1 to E29, wherein storing the decoded data includes storing to a storage device.

[0383] F1. A method for transmitting data in a data center, comprising:

[0384] Encoding the data into a set of encoded spatio-temporal patterns including a first intensity level and a second intensity level;

[0385] Display an encoded spatio-temporal pattern set;

[0386] Obtain an encoded spatio-temporal pattern set spatio-temporally; and

[0387] Decode the encoded spatio-temporal pattern set into data.

[0388] The method of item F2, further comprising obtaining data from a first sending node.

[0389] The method of item F3, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0390] The method of any one of items F1 to F3, wherein the data includes a first data set and a second data set.

[0391] The method of item F5, wherein the first data set and the second data set are obtained from the first sending node.

[0392] The method of any one of items F4 or F5, wherein the first data set is still obtained from the first sending node, and the second data set is obtained from a second sending node.

[0393] The method of any one of items F1 to F6, wherein the data is unserialized data.

[0394] The method of any one of items F1 to F7, wherein encoding the data into an encoded spatio-temporal pattern set includes encoding the data into code symbols.

[0395] The method of item F8, wherein the code symbols are organized into an encoded spatio-temporal pattern.

[0396] The method of any one of items F8 or F9, wherein encoding the data into code symbols further includes encoding the data into a bit stream and encoding the bit stream into code symbols.

[0397] The method of any one of items F1 to F10, wherein the encoded spatio-temporal pattern set includes at least one color producible by visible light.

[0398] The method of any one of items F1 to F11, wherein the encoded spatio-temporal pattern set includes at least two colors producible by visible light.

[0399] The method of item F12, wherein at least two colors are used to encode the data.

[0400] The method of any one of items F1 to F13, wherein a first intensity level and a second intensity level are used to encode the data.

[0401] A method according to item F15, wherein at least one color is used to provide header information.

[0402] A method according to item F16, wherein the header information indicates the intended recipient for the data.

[0403] A method according to item F17, wherein the header information indicates the priority level for the data.

[0404] A method according to any one of items F1 to F14, wherein at least one intensity level is used to provide header information.

[0405] A method according to item F18, wherein the header information indicates the intended recipient for the data.

[0406] A method according to item F18, wherein the header information indicates the priority level for the data.

[0407] A method according to any one of items F1 to F20, wherein the encoded spatio-temporal pattern set includes one or more of visible light and near-visible light.

[0408] A method according to item F22, wherein the near-visible light is one or more of UV light and IR light.

[0409] A method according to any one of items F21 or F22, wherein the near-visible light indicates the intended recipient for the data.

[0410] A method according to any one of items F21 or F22, wherein the near-visible light indicates the priority level for the data.

[0411] A method according to any one of items F1 to F24, wherein the encoded spatio-temporal pattern set further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0412] A method according to item F25, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates the intended recipient for the data.

[0413] A method according to item F25, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority level for the data.

[0414] A method according to any one of items F1 to F27, wherein the encoded spatio-temporal pattern set in the encoded spatio-temporal pattern set moves in space relative to time.

[0415] A method according to item F28, wherein the encoded spatio-temporal pattern set in the encoded spatio-temporal pattern set moves in a predetermined pattern.

[0416] A method according to any one of items F1 to F29, wherein the step of displaying the encoded spatio-temporal pattern set includes displaying by a projector on a screen.

[0417] A method according to any one of items F1 to F29, wherein the step of displaying the encoded spatio-temporal pattern set includes displaying by at least one of a computer screen and a TV monitor.

[0418] A method according to any one of items F1 to F31, wherein the step of displaying the encoded spatio-temporal pattern set includes displaying on two or more displays.

[0419] A method according to any one of items F1 to F32, wherein the step of displaying the encoded spatio-temporal pattern set includes displaying two or more encoded spatio-temporal pattern sets.

[0420] A method according to item F33, wherein the two or more encoded spatio-temporal pattern sets at least partially overlap.

[0421] A method according to any one of items F1 to F34, wherein the step of obtaining the encoded spatio-temporal pattern set in spatio-temporal domain includes obtaining by at least one of a camera, a video camera, and an image sensor.

[0422] A method according to item F35, wherein at least one of the camera, the video camera, and the image sensor is capable of capturing visible light and near-visible light.

[0423] A method according to any one of items F1 to F36, wherein the step of obtaining the encoded spatio-temporal pattern set in spatio-temporal domain includes obtaining by a first camera and a second camera.

[0424] A method according to item F37, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0425] A method according to any one of items F8 to F10, wherein the step of decoding the encoded spatio-temporal pattern set into data includes decoding code symbols into data.

[0426] A method according to item F39, wherein the step of decoding the code symbols into data further includes decoding the code symbols into a bit stream and decoding the bit stream into data.

[0427] A method according to any one of items F1 to F40, further including storing the data into a storage device.

[0428] A method according to item F2, wherein the first sending node is configured to obtain the displayed encoded spatio-temporal pattern set.

[0429] A method according to item F42, further including the first sending node verifying whether the data is correctly output from the obtained displayed encoded spatio-temporal pattern set.

[0430] Method of item F43, wherein the first sending node is configured to re - send data if the data is wrongly output.

[0431] G1. Method for encoding data in a data center, comprising:

[0432] Obtaining data to be encoded;

[0433] Encoding the data into a set of encoded spatio - temporal patterns including visible light and near - visible light; and

[0434] Outputting the set of encoded spatio - temporal patterns.

[0435] G2. Method of item G1, wherein the data is obtained from a first sending node.

[0436] G3. Method of item G2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0437] G4. Method of any one of items G1 to G3, wherein the data includes a first data set and a second data set.

[0438] G5. Method of item G4, wherein the first data set and the second data set are obtained from the first sending node.

[0439] G6. Method of item G4, wherein the first data set is obtained from the first sending node, and the second data set is obtained from a second sending node.

[0440] G7. Method of any one of items G1 to G6, wherein the data is un - serialized data.

[0441] G8. Method of any one of items G1 to G7, wherein encoding the data into a set of encoded spatio - temporal patterns includes encoding the data into code symbols.

[0442] G9. Method of item G8, wherein the code symbols are organized into encoded spatio - temporal patterns.

[0443] G10. Method of any one of items G8 or G9, wherein encoding the data into code symbols further includes encoding the data into a bit stream and encoding the bit stream into code symbols.

[0444] G11. Method of any one of items G1 to G10, wherein the set of encoded spatio - temporal patterns includes at least two colors.

[0445] G12. Method of item G11, wherein at least two colors are used to encode the data.

[0446] G13. Method of item G11, wherein at least one of the at least two colors is used to provide header information.

[0447] Method of item G13, wherein the header information indicates the intended recipient for the data.

[0448] Method of item G13, wherein the header information indicates the priority level for the data.

[0449] Method of item G8, wherein at least one code symbol includes an intensity level different from another code symbol.

[0450] Method of item G16, wherein at least one intensity level is used to provide header information.

[0451] Method of item G17, wherein the header information indicates the intended recipient for the data.

[0452] Method of item G17, wherein the header information indicates the priority level for the data.

[0453] Method of any one of items G1 to G19, wherein the near visible light is one or more of UV light and IR light.

[0454] Method of any one of items G1 to G20, wherein the near visible light indicates the intended recipient for the data.

[0455] Method of any one of items G1 to G20, wherein the near visible light indicates the priority level for the data.

[0456] Method of any one of items G1 to G22, wherein the set of encoded spatio-temporal patterns further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0457] Method of item G23, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates the intended recipient for the data.

[0458] Method of any one of items G23 or G24, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority level for the data.

[0459] Method of any one of items G1 to G25, wherein the set of encoded spatio-temporal patterns in the set of encoded spatio-temporal patterns moves in space relative to time.

[0460] Method of item G26, wherein the set of encoded spatio-temporal patterns in the set of encoded spatio-temporal patterns moves in a predetermined pattern.

[0461] A method according to any one of items G1 to G27, wherein the output encoded spatio-temporal pattern set further includes a displayed encoded spatio-temporal pattern set.

[0462] G29. The method of item G28, wherein the displayed encoded spatio-temporal pattern set includes being displayed by a projector onto a screen.

[0463] G30. The method according to any one of items G28, wherein the displayed encoded spatio-temporal pattern set includes being displayed by at least one of a computer screen and a TV monitor.

[0464] G31. The method according to any one of items G28 or G30, wherein the displayed encoded spatio-temporal pattern set includes being displayed on two or more displays.

[0465] G32. The method according to any one of items G28 to G31, wherein the displayed encoded spatio-temporal pattern set includes displaying two or more encoded spatio-temporal pattern sets.

[0466] G33. The method of item G32, wherein two or more of the encoded spatio-temporal pattern sets at least partially overlap.

[0467] H1. A method for decoding data in a data center, comprising:

[0468] Obtaining, in space and time, an encoded spatio-temporal pattern set including visible light and near-visible light;

[0469] Decoding the encoded spatio-temporal pattern set into decoded data; and

[0470] Storing the decoded data.

[0471] H2. The method of item H1, wherein obtaining the encoded spatio-temporal pattern set in space and time includes obtaining from at least one of a display and a projection screen.

[0472] H3. The method of item H2, wherein the display is at least one of a computer screen and a TV monitor.

[0473] H4. The method according to any one of items H1 to H3, wherein obtaining the encoded spatio-temporal pattern set in space and time includes obtaining by at least one of a camera, a video camera, and an image sensor.

[0474] H5. The method of item H4, wherein at least one of the camera, the video camera, and the image sensor is capable of capturing visible light and near-visible light.

[0475] H6. The method according to any one of items H1 to H5, wherein obtaining the encoded spatio-temporal pattern set in space and time includes obtaining by a first camera and a second camera.

[0476] Method of item H7, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0477] Method of any one of items H1 to H7, wherein the decoded data is unserialized data in matrix form.

[0478] Method of any one of items H1 to H8, wherein the encoded spatio-temporal pattern set includes code symbols.

[0479] Method of item H9, wherein decoding the encoded spatio-temporal pattern set into decoded data includes decoding the code symbols into data.

[0480] Method of item H10, wherein decoding the code symbols into data further includes decoding the code symbols into a bitstream and decoding the bitstream into data.

[0481] Method of any one of items H1 to H11, wherein the encoded spatio-temporal pattern set includes at least two colors.

[0482] Method of item H12, wherein at least two colors are used to decode the data.

[0483] Method of any one of items H12 or H13, wherein at least one of the at least two colors is used to provide header information.

[0484] Method of item H14, wherein the header information indicates the intended recipient for the data.

[0485] Method of item H14, wherein the header information indicates the priority level for the data.

[0486] Method of any one of items H9 to H11, wherein at least one code symbol includes an intensity level different from another code symbol.

[0487] Method of item H17, wherein at least one intensity level is used to provide header information.

[0488] Method of item H18, wherein the header information indicates the intended recipient for the data.

[0489] Method of item H18, wherein the header information indicates the priority level for the data.

[0490] Method of any one of items H1 to H20, wherein the near-visible light is one or more of UV light and IR light.

[0491] Method of any one of items H1 to H21, wherein the near-visible light indicates the intended recipient for the data.

[0492] A method according to any one of items H1 to H21, wherein near visible light indicates a priority level for the data.

[0493] A method according to any one of items H1 to H23, wherein the encoded spatio-temporal pattern set further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0494] The method of item H25, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates an intended recipient for the data.

[0495] The method of item H24, wherein at least one of the shape factor, the position factor, and the size factor indicates a priority level for the data.

[0496] A method according to any one of items H1 to H26, wherein the encoded spatio-temporal pattern set in the encoded spatio-temporal pattern set moves in space relative to time.

[0497] The method of item H27, wherein the encoded spatio-temporal pattern set in the encoded spatio-temporal pattern set moves in a predetermined pattern.

[0498] A method according to any one of items H1 to H28, wherein storing the decoded data includes storing it to a storage device.

[0499] I1. A method for transmitting data in a data center, comprising:

[0500] Encoding the data into an encoded spatio-temporal pattern set including visible light and near visible light;

[0501] Displaying the encoded spatio-temporal pattern set;

[0502] Obtaining the encoded spatio-temporal pattern set spatio-temporally; and

[0503] Decoding the encoded spatio-temporal pattern set into data.

[0504] The method of item I1, further comprising obtaining the data from a first sending node.

[0505] The method of item I2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0506] The method according to any one of items I1 to I3, wherein the data includes a first data set and a second data set.

[0507] The method of item I4, wherein the first data set and the second data set are obtained from the first sending node.

[0508] Method of any one of I4 or I5, wherein the first data set is still obtained from the first sending node, and the second data set is obtained from the second sending node.

[0509] Method of any one of I1 to I6, wherein the data is non-serialized data.

[0510] Method of any one of I1 to I7, wherein encoding the data into a set of encoded spatio-temporal patterns includes encoding the data into code symbols.

[0511] Method of I8, wherein the code symbols are organized into encoded spatio-temporal patterns.

[0512] Method of any one of I8 or I9, wherein encoding the data into code symbols further includes encoding the data into a bit stream and encoding the bit stream into code symbols.

[0513] Method of any one of I1 to I10, wherein the set of encoded spatio-temporal patterns includes at least two colors.

[0514] Method of I11, wherein at least two colors are used to encode the data.

[0515] Method of I11, wherein at least one of the at least two colors is used to provide header information.

[0516] Method of I13, wherein the header information indicates the intended recipient for the data.

[0517] Method of I13, wherein the header information indicates the priority level for the data.

[0518] Method of any one of I8 to I10, wherein at least one code symbol includes an intensity level different from that of another code symbol.

[0519] Method of any one of I1 to I16, wherein at least one intensity level is used to provide header information.

[0520] Method of I17, wherein the header information indicates the intended recipient for the data.

[0521] Method of I17, wherein the header information indicates the priority level for the data.

[0522] Method of any one of I1 to I19, wherein the near visible light is one or more of UV light and IR light.

[0523] A method according to any one of Items I1 to I20, wherein the near visible light indicates the intended recipient of the data.

[0524] I22. A method according to any one of Items I1 to I20, wherein the near visible light indicates the priority level of the data.

[0525] I23. A method according to any one of Items I1 to I22, wherein the set of encoded spatio-temporal patterns further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0526] I24. The method of Item I23, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates the intended recipient of the data.

[0527] I25. A method according to any one of Items I23 or I24, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority level of the data.

[0528] I26. A method according to any one of Items I1 to I25, wherein the set of encoded spatio-temporal patterns in the set of encoded spatio-temporal patterns moves in space relative to time.

[0529] I27. The method of Item I26, wherein the set of encoded spatio-temporal patterns in the set of encoded spatio-temporal patterns moves in a predetermined pattern.

[0530] I28. A method according to any one of Items I1 to I27, wherein displaying the set of encoded spatio-temporal patterns includes displaying by a projector onto a screen.

[0531] I29. A method according to any one of Items I1 to I28, wherein displaying the set of encoded spatio-temporal patterns includes displaying by at least one of a computer screen and a TV monitor.

[0532] I30. A method according to any one of Items I1 to I29, wherein displaying the set of encoded spatio-temporal patterns includes displaying on two or more displays.

[0533] I31. A method according to any one of Items I1 to I30, wherein displaying the set of encoded spatio-temporal patterns includes displaying two or more sets of encoded spatio-temporal patterns.

[0534] I32. The method of Item I31, wherein the two or more sets of encoded spatio-temporal patterns at least partially overlap.

[0535] I33. A method according to any one of Items I1 to I32, wherein obtaining the set of encoded spatio-temporal patterns spatio-temporally includes obtaining by at least one of a camera, a video camera, and an image sensor.

[0536] Method of item I33, wherein at least one of a camera, a video camera, and an image sensor is capable of capturing visible light and near-visible light.

[0537] Method of any one of items I1 to I34, wherein obtaining a set of encoded spatio-temporal patterns in space-time includes obtaining by a first camera and a second camera.

[0538] Method of item I35, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0539] Method of any one of items I8 to I10, wherein decoding a set of encoded spatio-temporal patterns into data includes decoding code symbols into data.

[0540] Method of item I37, wherein decoding code symbols into data further includes decoding code symbols into a bit stream and decoding the bit stream into data.

[0541] Method of any one of items I1 to I38, further including storing the decoded data in a storage device.

[0542] Method of item I2, wherein the first sending node is configured to obtain a set of encoded spatio-temporal patterns.

[0543] Method of item I40, further including the first sending node verifying whether the data is correctly displayed from the obtained set of encoded spatio-temporal patterns.

[0544] Method of item I41, wherein the first sending node is configured to re-send the data if the data is incorrectly displayed.

[0545] Method for encoding data in a data center, including:

[0546] Obtaining a first data set and a second data set to be encoded;

[0547] Encoding the first data set and the second data set into a first encoded spatio-temporal pattern set and a second encoded spatio-temporal pattern set; and

[0548] Outputting the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set.

[0549] Method of item J1, wherein the first data set and the second data set are obtained from a first sending node.

[0550] Method of item J2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0551] A method according to any one of items J1 to J3, wherein the first data set is obtained from a first sending node and the second data set is obtained from a second sending node.

[0552] J5. A method according to any one of items J1 to J4, wherein at least one of the first data set and the second data set is unsequenced data.

[0553] J6. A method according to any one of items J1 to J5, wherein encoding the first data set and the second data set into a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns includes encoding the first data set and the second data set into code symbols.

[0554] J7. The method of item J6, wherein the code symbols are organized into a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns.

[0555] J8. The method of either item J6 or J7, wherein encoding the first data set and the second data set into code symbols further includes encoding the first data set and the second data set into a bit stream and encoding the bit stream into code symbols.

[0556] J9. A method according to any one of items J1 to J8, wherein the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns include at least two colors that can be produced by visible light.

[0557] J10. The method of item J9, wherein at least two colors are used to encode at least one of the first data set and the second data set.

[0558] J11. The method of item J9, wherein at least one of the at least two colors is used to provide header information.

[0559] J12. The method of item J11, wherein the header information indicates the intended recipient of the data.

[0560] J13. The method of item J11, wherein the header information indicates the priority level of the data.

[0561] J14. The method of any one of items J6 to J8, wherein at least one code symbol includes an intensity level different from that of another code symbol.

[0562] J15. The method of item J14, wherein at least one intensity level is used to provide header information.

[0563] J16. The method of item J15, wherein the header information indicates the intended recipient of the data.

[0564] J17. The method of item J15, wherein the header information indicates the priority level of the data.

[0565] A method according to any one of items J1 to J17, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set includes near visible light.

[0566] J19. The method of item J18, wherein the near visible light is one or more of UV light and IR light.

[0567] J20. The method according to any one of items J18 or J19, wherein the near visible light indicates an intended recipient of the data.

[0568] J21. The method according to any one of items J18 or J19, wherein the near visible light indicates a priority level of the data.

[0569] J22. The method according to any one of items J1 to J21, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0570] J23. The method of item J22, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates an intended recipient of the data.

[0571] J24. The method according to any one of items J22 or J23, wherein at least one of the shape factor, the position factor, and the size factor indicates a priority level of the data.

[0572] J25. The method according to any one of items J1 to J24, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set moves in space relative to time.

[0573] J26. The method of item J25, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set moves in a predetermined pattern.

[0574] J27. The method according to any one of items J1 to J26, wherein outputting the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set further includes outputting on a display.

[0575] J28. The method according to any one of items J1 to J26, wherein outputting the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set further includes outputting by a projector on a screen.

[0576] J29. The method of item J27, wherein the display is at least one of a computer screen and a TV monitor.

[0577] A method according to any one of items J1 to J27 or J29, wherein outputting the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set includes displaying on two or more displays.

[0578] J31. The method of item J30, wherein displaying on two or more displays further includes displaying the first encoded spatio-temporal pattern set on a first display and displaying the second encoded spatio-temporal pattern set on a second display.

[0579] J32. The method according to any one of items J1 to J31, wherein the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set at least partially overlap.

[0580] K1. A method for decoding data in a data center, comprising:

[0581] Obtaining a first encoded spatio-temporal pattern set and a second encoded spatio-temporal pattern set spatio-temporally;

[0582] Decoding the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set into a first decoded data set and a second decoded data set; and

[0583] Storing the first decoded data set and the second decoded data set.

[0584] K2. The method of item K1, wherein obtaining the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set spatio-temporally includes obtaining from at least one of a display and a projection screen.

[0585] K3. The method of item K2, wherein the display is at least one of a computer screen and a TV monitor.

[0586] K4. The method according to any one of items K1 to K3, wherein obtaining the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set spatio-temporally includes obtaining by at least one of a camera, a video camera, and an image sensor.

[0587] K5. The method of item K4, wherein at least one of the camera, the video camera, and the image sensor is capable of capturing visible light and near-visible light.

[0588] K6. The method according to any one of items K1 to K5, wherein obtaining the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set spatio-temporally includes obtaining by a first camera and a second camera.

[0589] K7. The method of item K6, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0590] K8. The method according to any one of items K1 to K7, wherein the first decoded data set and the second decoded data set are non-serialized data in matrix form.

[0591] A method for any one of K1 to K8, wherein the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set include code symbols.

[0592] K10. The method of item K9, wherein decoding the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set into a first decoded data set and a second decoded data set includes decoding the code symbols into data.

[0593] K11. The method of item K10, wherein decoding the code symbols into data further includes decoding the code symbols into a bit stream and decoding the bit stream into data.

[0594] K12. The method of any one of K1 to K11, wherein the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set include at least two colors that can be produced by visible light.

[0595] K13. The method of item K12, wherein at least two colors are used to decode the data.

[0596] K14. The method of item K12, wherein at least one color is used to provide header information.

[0597] K15. The method of item K14, wherein the header information indicates the intended recipient of the data.

[0598] K16. The method of item K14, wherein the header information indicates the priority level of the data.

[0599] K17. The method of any one of K9 to K11, wherein at least one code symbol includes an intensity level different from that of another code symbol.

[0600] K18. The method of item K17, wherein at least one intensity level is used to provide header information.

[0601] K19. The method of item K18, wherein the header information indicates the intended recipient of the data.

[0602] K20. The method of item K18, wherein the header information indicates the priority level of the data.

[0603] K21. The method of any one of K1 to K20, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set includes near-visible light.

[0604] K22. The method of item K21, wherein the near-visible light is one or more of UV light and IR light.

[0605] K23. The method of any one of K21 or K22, wherein the near-visible light indicates the intended recipient of the data.

[0606] A method for any one of K21 or K22, wherein the near visible light indicates the priority level for the data.

[0607] K25. A method for any one of K1 to K24, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0608] K26. The method of K25, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates the intended recipient for the data.

[0609] K27. The method of K25, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority level for the data.

[0610] K28. A method for any one of K1 to K27, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set moves in space relative to time.

[0611] K29. The method of K28, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set moves in a predetermined pattern.

[0612] K30. A method for any one of K1 to K29, wherein storing the first decoded data set and the second decoded data set includes storing to a storage device.

[0613] L1. A method for transmitting data in a data center, including:

[0614] Encoding a first data set and a second data set into a first encoded spatio-temporal pattern set and a second encoded spatio-temporal pattern set;

[0615] Displaying the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set;

[0616] Obtaining the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set spatio-temporally; and

[0617] Decoding the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set into a first data set and a second data set.

[0618] L2. The method of L1, further including obtaining the first data set and the second data set from a first sending node.

[0619] L3. The method of L2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0620] A method according to any one of items L1 to L3, wherein the first data set is obtained from a first sending node, and the second data set is obtained from a second sending node.

[0621] A method according to any one of items L1 to L4, wherein at least one of the first data set and the second data set is unsequenced data.

[0622] A method according to any one of items L1 to L5, wherein encoding the first data set and the second data set into a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns includes encoding the first data set and the second data set into code symbols.

[0623] The method of item L6, wherein the code symbols are organized into encoded spatio-temporal patterns.

[0624] The method according to any one of items L6 or L7, wherein encoding the first data set and the second data set into code symbols further includes encoding the first data set and the second data set into a bitstream and encoding the bitstream into code symbols.

[0625] A method according to any one of items L1 to L8, wherein the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns include at least two colors that can be produced by visible light.

[0626] The method of item L9, wherein at least two of the colors are used to encode data.

[0627] The method of item L9, wherein at least one of the colors is used to provide header information.

[0628] The method of item L11, wherein the header information indicates the intended recipient for the data.

[0629] The method of item L11, wherein the header information indicates the priority level for the data.

[0630] A method according to any one of items L6 to L8, wherein at least one code symbol includes an intensity level different from another code symbol.

[0631] The method of item L14, wherein at least one intensity level is used to provide header information.

[0632] The method of item L15, wherein the header information indicates the intended recipient for the data.

[0633] The method of item L15, wherein the header information indicates the priority level for the data.

[0634] A method of any one of L1 to L17, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set includes near visible light.

[0635] The method of L19, wherein the near visible light is one or more of UV light and IR light.

[0636] The method of any one of L18 or L19, wherein the near visible light indicates an intended recipient for the data.

[0637] The method of any one of L18 or L19, wherein the near visible light indicates a priority level for the data.

[0638] The method of any one of L1 to L21, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

[0639] The method of L22, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates an intended recipient for the data.

[0640] The method of any one of L22 or L23, wherein at least one of the shape factor, the position factor, and the size factor indicates a priority level for the data.

[0641] The method of any one of L1 to L24, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set moves in space relative to time.

[0642] The method of L25, wherein at least one of the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set moves in a predetermined pattern.

[0643] The method of any one of L1 to L26, wherein displaying the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set includes displaying by a projector onto a screen.

[0644] The method of any one of L1 to L26, wherein displaying the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set includes displaying by at least one of a computer screen and a TV monitor.

[0645] The method of any one of L1 to L28, wherein displaying the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set includes displaying on two or more displays.

[0646] A method according to any one of L1 to L29, wherein displaying the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set includes displaying the first encoded spatio-temporal pattern set on a first display and displaying the second encoded spatio-temporal pattern set on a second display.

[0647] A method according to any one of L1 to L30, wherein the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set at least partially overlap.

[0648] A method according to any one of L1 to L31, wherein obtaining the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set spatio-temporally includes obtaining by at least one of a camera, a video camera, and an image sensor.

[0649] The method of item L32, wherein at least one of the camera, the video camera, and the image sensor is capable of capturing visible light and near-visible light.

[0650] A method according to any one of L1 to 31, wherein obtaining the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set spatio-temporally includes obtaining by a first camera and a second camera.

[0651] The method of item L34, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0652] A method according to any one of L6 to L8, wherein decoding the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set into a first data set and a second data set includes decoding code symbols into data.

[0653] The method of item L36, wherein decoding the code symbols into data further includes decoding the code symbols into a bit stream and decoding the bit stream into data.

[0654] A method according to any one of L1 to L37, further comprising storing the first decoded data set and the second decoded data set in a storage device.

[0655] The method of item L2, wherein the first sending node is configured to obtain the first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set that are displayed.

[0656] The method of item L39, wherein the first sending node verifies whether the first data set and the second data set are correctly output from the obtained first encoded spatio-temporal pattern set and the second encoded spatio-temporal pattern set that are displayed.

[0657] The method of item L40, wherein the first sending node is configured to re-send the first data set or the second data set if the data is incorrectly displayed.

[0658] One or more specific embodiments of the present disclosure are described herein. These described embodiments are examples of the technology of the present disclosure. Additionally, in an effort to provide a concise description of these embodiments, all features of the actual embodiments may not be described in the specification. It should be understood that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions will be made to achieve the developer's specific goals, such as compliance with system-related and business-related constraints, which may vary from one embodiment to another. Moreover, it should be understood that such development work may be complex and time-consuming, but it will still be a routine task of design, fabrication, and manufacture for those of ordinary skill in the art who benefit from the present disclosure.

[0659] The articles "a", "an", and "the" are intended to mean that there is one or more of the elements recited in the foregoing description. The terms "comprising", "including", and "having" are intended to be inclusive and mean that there may be additional elements in addition to the recited elements. Additionally, it should be understood that references to "one embodiment" or "an embodiment" of the present disclosure are not to be construed as excluding the existence of additional embodiments that also include the recited features. For example, any element described in connection with an embodiment herein can be combined with any element of any other embodiment described herein. As would be understood by those of ordinary skill in the art in the field covered by the embodiments of the present disclosure, the numbers, percentages, ratios, or other values recited herein are intended to include that value, as well as other values that are "about" or "approximate" to the recited value. Accordingly, the recited values should be construed broadly enough to cover at least values that are sufficiently close to the recited values to perform the desired function or achieve the desired result. The recited values include at least the variations expected in a proper manufacturing or production process, and may include values within 5%, 1%, 0.1%, or 0.01% of the recited value.

[0660] Those of ordinary skill in the art should recognize that, given the present disclosure, equivalent structures do not depart from the spirit and scope of the present disclosure, and various changes, substitutions, and alterations can be made to the embodiments disclosed herein without departing from the spirit and scope of the present disclosure. Equivalent structures (including functional "means-plus-function" clauses) are intended to cover structures that perform the recited function herein, including both structural equivalents that operate in the same manner and equivalent structures that provide the same function. The applicant's express intent is not to invoke means-plus-function or other functional claim limitations for any claim other than a claim in which the words "means for" appear in conjunction with the associated function. Every addition, deletion, and modification to an embodiment that falls within the meaning and scope of the claims will be covered by the claims.

[0661] As used herein, the terms "about", "approximately" and "substantially" denote a quantity close to the stated quantity, which still performs the desired function or achieves the desired result. For example, the terms "about", "approximately" and "substantially" may refer to a quantity within less than 5%, less than 1%, less than 0.1% and less than 0.01% of the stated quantity. Further, it should be understood that any direction or reference system in the foregoing description is merely a relative direction or motion. For example, any reference to "upward" and "downward" or "above" or "below" is merely a description of the relative position or motion of the relevant elements.

[0662] Without departing from the spirit or characteristics of the present disclosure, the present disclosure may be embodied in other specific forms. The described embodiments should be considered illustrative rather than restrictive. Therefore, the scope of the present disclosure is indicated by the appended claims rather than by the foregoing description. Changes within the meaning and range of equivalents of the claims will be included within their scope.

Claims

1. A method for encoding data in a data center, comprising: Obtaining the data to be encoded; Encoding the data into a set of encoded spatio-temporal patterns including at least three colors; And Outputting the set of encoded spatio-temporal patterns.

2. The method according to claim 1, wherein encoding the data into the set of encoded spatio-temporal patterns includes encoding the data into code symbols.

3. The method according to any one of claims 1 or 2, wherein the set of encoded spatio-temporal patterns includes colors producible by visible light.

4. The method according to any one of claims 1 to 3, wherein at least two of the at least three colors are used to encode the data.

5. The method according to any one of claims 1 to 4, wherein at least one of the at least three colors is used to provide header information.

6. The method according to claim 5, wherein the header information indicates at least one of an intended recipient for the data and a priority level for the data.

7. The method according to claim 2, wherein a first code symbol includes a first intensity level and a second code symbol includes a second intensity level.

8. The method according to claim 7, wherein at least one of the first intensity level or the second intensity level is used to provide header information.

9. The method according to any one of claims 1 to 8, wherein the set of encoded spatio-temporal patterns includes one or more of visible light and near-visible light.

10. The method according to claim 9, wherein the near-visible light is one or more of UV light and IR light.

11. The method according to any one of claims 1 to 10, wherein the set of encoded spatio-temporal patterns further includes at least one of a shape factor, a position factor, a size factor, and a timing factor.

12. The method according to claim 11, wherein at least one of the shape factor, the position factor, the size factor, and the timing factor indicates at least one of an intended recipient for the data and a priority level for the data.

13. The method according to any one of claims 1 to 12, wherein the set of encoded spatio-temporal patterns moves in space relative to time.

14. The method according to claim 13, wherein the set of encoded spatio-temporal patterns moves in a predetermined pattern.

15. The method according to any one of claims 1 to 14, further comprising displaying the output set of encoded spatio-temporal patterns.

16. A method for decoding data in a data center, comprising: Obtaining in spatio-temporal a set of encoded spatio-temporal patterns including at least three colors; Decoding the set of encoded spatio-temporal patterns into decoded data; And Storing the decoded data.

17. The method according to claim 16, wherein obtaining the set of encoded spatio-temporal patterns in spatio-temporal includes obtaining by at least one of a camera, a video camera, and an image sensor.

18. A method for transmitting data in a data center, comprising: Encoding the data into a set of encoded spatio-temporal patterns including at least three colors; Displaying the set of encoded spatio-temporal patterns; Obtain the encoded spatio-temporal pattern set in space-time; and Decode the encoded spatio-temporal pattern set into the data.

19. The method according to claim 18, wherein encoding the data into the encoded spatio-temporal pattern set includes encoding the data into code symbols.

20. The method according to any one of claims 18 or 19, wherein the encoded spatio-temporal pattern set includes colors that can be generated by visible light.