Method for transmitting data via free-space spatiotemporal mode

By using encoded spatiotemporal mode in the data center to encode data into a combination of multiple colors and intensity levels, the problem of network congestion and fiber connection fault detection in the data center is solved, and efficient data transmission and rapid fault handling are achieved.

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

Patent Information

Application Number
CN202380080129.5
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 problems in the data center with network congestion and difficulty in detecting fiber connection faults, resulting in low data transmission efficiency and long fault processing time.

Method used

The data is encoded into a combination of at least three colors, multiple intensity levels and visible/near-visible light, and space-time transmission and decoding are performed through the display device and the acquisition device.

Benefits of technology

It realizes adaptive and dynamic communication channels, simplifies data transmission, can adapt bandwidth according to requirements, and improves data transmission efficiency and fault processing speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120226283A_ABST
    Figure CN120226283A_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 into a set of encoding spatio-temporal patterns; and outputting the set of encoded spatio-temporal modes.
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 connect a large number of servers, network storage devices, and other types of computing devices. Generally, different physical network devices transfer data to other physical network devices through 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: spatio-temporally obtaining 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 other embodiments, a method for transmitting data in a data center is disclosed. The method includes: encoding data into a set of encoded spatio-temporal patterns having at least three colors; displaying the set of encoded spatio-temporal patterns; spatio-temporally obtaining 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 intended to introduce some 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 to help limit the scope of the claimed subject matter.

[0006] Additional features and advantages of embodiments of the present disclosure will be set forth in the following description, and some of the features and advantages will be apparent from the description, or can be learned by practice of such embodiments. The features and advantages of such embodiments can be realized and obtained by the means and combinations particularly pointed out in the appended claims. These features and other features will become more apparent from the following description and the appended claims, or can be learned by practice of the embodiments set forth below. 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 with reference to specific implementations illustrated in the accompanying drawings. For better understanding, in the various drawings, the same elements have been designated by the same reference numerals. Although some of the drawings may be conceptual schematic or exaggerated representations, at least some of the drawings may be drawn to scale. Having understood that the drawings depict some example implementations, these implementations will be described and explained with additional specificity and detail by using the drawings, in which:

[0008] Figures 1A - 1E is a flowchart illustrating a method of encoding data in a data center.

[0009] Figures 2A - 2E is a flowchart illustrating a method of decoding data in a data center.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0026] Figure 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 visible light and near-visible light according to at least one embodiment.

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

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

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

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

[0031] Figure 23 Is a flowchart illustrating a method of transmitting data in a data center, wherein a sending node can verify that the data is correctly sent. Detailed Implementation Manner

[0032] This 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 cabling between these elements. Nodes can host one or more virtual machines to provide users with web search, website hosting, system updates, application development and testing, or other suitable computing services.

[0033] One of the biggest problems in a data center space is network congestion. Optical fibers have a certain fixed bandwidth limit, 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, which wastes some of the resources. On the other hand, if the connection is designed for less than the maximum data throughput, the connection cannot handle data bursts that require the maximum data throughput (e.g., high-bandwidth transmissions in a short period of time). Internet traffic, in particular, can be bursty, leading to network congestion and limiting communication between nodes. Although there are central controllers in the form of routers and compute-cluster software-based resource managers, they cannot keep up with the deluge of Internet traffic because at least some of them may not be able to control packet transmission at the source (e.g., at the node) without clogging the traffic and multiplexing their own signals.

[0034] In addition, as the degree of network interconnectivity increases, more optical fibers are needed. There are also other problems with optical fiber connections. If an optical fiber fails, it takes time and effort to detect the problem, then find the faulty cable and replace it. In addition, when the network configuration changes, rewiring a data center can take weeks.

[0035] In addition, the Open Systems Interconnection (OSI) model provides a common basis for network interconnectivity. It also inserts twelve physical or software component layers between applications. Data channels through this framework require time-consuming serialization and deserialization of data. In addition, multiple touch points provide opportunities for data corruption, theft, and restrictions. Therefore, there is a need for an adaptive and continuously dynamic communication channel that simplifies data transmission and can adapt the bandwidth based on demand. At least one embodiment described herein can provide an adaptive and / or dynamic communication channel that simplifies data transmission such that the bandwidth can be adapted based on demand. As the refresh rate and / or resolution of displays and projectors improve, at least one embodiment described herein can provide faster and more energy-efficient data transfer than optical fiber connections.

[0036] Figures 1A - 1DIncludes flowcharts illustrating methods 100A, 100B, 100C, and 100D for encoding data in a data center. For ease of description, these methods are described simultaneously. Methods 100A, 100B, 100C, and 100D include obtaining data to be encoded at stages 102A, 102B, 102C, and 102D. The data can be of a specific data type. For example, the data type can be numeric, alphanumeric, binary, Kanji, any other type of data, or a combination thereof. In some embodiments, obtaining the data to be encoded can include obtaining data from a first sending node, as discussed in conjunction with Figures 3A - 3B as further discussed. In some embodiments, the data includes data and header information. For example, it can 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 the data itself and does not include any header information.

[0037] In some embodiments, the sending node can be a server including virtual machines that 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 can reside on the node. For example, the applications can 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 can include obtaining data from a storage device residing at the first sending node. For example, the storage device can include an HDD, an SSD, an optical storage device, any other type of non-volatile storage device for long-term or short-term data storage, or a combination thereof. In some embodiments, obtaining the data can include obtaining data from a memory device residing at the first sending node. For example, the memory device can be ROM, RAM, DRAM, SRAM, or other suitable volatile memory devices for temporarily storing data.

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

[0040] Method 100A includes encoding data into a set of encoded spatio-temporal patterns at stage 104A. The spatio-temporal patterns can be patterns observed in space and time. In some embodiments, the spatio-temporal patterns can be formed by visible light. For example, light with a wavelength of 400 nanometers to 700 nanometers. In some embodiments, the spatio-temporal patterns can be formed by near-visible light. For example, light with a wavelength of 780 nanometers to 1 millimeter (infrared) or light with a wavelength of 100 nanometers to 400 nanometers (ultraviolet). In some embodiments, the spatio-temporal patterns can be formed by other spatial signals (also referred to as non-visible signals). For example, the non-visible 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, and each spatio-temporal pattern is transmitted in sequence.

[0042] Encoding data into a set of encoded spatio-temporal patterns can include encoding a first set of data and a second set of data into a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns (as shown in stage 104E in Figure 1E ), and / or the encoded spatio-temporal patterns can include at least three colors (as shown in stage 104B in Figure 1B ), a first intensity level and a second intensity level (as shown in stage 104C in Figure 1C ), visible light and near-visible light (as shown in stage 104D in Figure 1D ), or a combination thereof. In some embodiments, the set (or the first set and the second set) of encoded spatio-temporal patterns includes two colors. In some embodiments, the set (or the first set 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, but the data can be sent as non-serialized data in matrix form. One possible benefit of transmitting non-serialized data is that there is no need to go 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 restrictions, other possibilities, or a combination thereof can be minimized.

[0044] In some embodiments, encoding a set of encoded spatio-temporal patterns includes encoding data into code symbols. The code symbols can be organized into encoded spatio-temporal patterns. For example, the encoded spatio-temporal patterns can include 7x7 code symbols, as combined with Figure 5As further discussed. In another example, the encoded spatio-temporal pattern may include 6x9 code symbols, as combined with Figure 11 As further discussed. In another example, the encoded spatio-temporal pattern may be organized in other ways, including being encoded into a shape that does not have straight edges or a typical geometric shape.

[0045] In some embodiments, encoding data into code symbols may 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, which may have values such as 1 or 0.

[0046] 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 of 400 nanometers to 700 nanometers). In some embodiments, the first color may be an "ON" color, while the second color may be an "OFF" color. For example, in a two-color system, the first color may be white (color "ON"), while the second color may be black (color "OFF"). In another example, in a two-color system, the first color may be red (color "ON"), while 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.

[0047] In some embodiments where the set of encoded spatio-temporal patterns includes at least three colors, all three or more colors may be used to encode data. For example, instead of using a typical two-bit encoding system (1 and 0), the system may 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 or four bit indicators accordingly). One possible advantage of using more than two-bit encoding when at least three different colors are used to encode data is that it allows for more efficient encoding of data and faster output of encoded data compared to a two-bit encoding system. Another possible advantage of using three or more colors is to provide bandwidth flexibility, as more colors are used, the higher the bandwidth provided for data transmission.

[0048] 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 of the first intensity level (value of 1) and red of the second intensity level (value of 0), as discussed in conjunction with Figure 7 As further discussed. One possible advantage of using two or more intensity levels is to provide bandwidth flexibility, because using two or more intensity levels provides higher bandwidth for data transmission.

[0049] In some embodiments where the set of encoded spatio-temporal patterns 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 set of encoded spatio-temporal patterns may include red with a value of 1 and blue with a value of 0, as discussed in conjunction with Figure 8 As further discussed.

[0050] In some embodiments where the set of encoded spatio-temporal patterns 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 set of encoded spatio-temporal patterns may include white with a value of 1 and black with a value of 0, as discussed in conjunction with Figure 10 As further discussed.

[0051] In some embodiments where the set of encoded spatio-temporal patterns 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 may include the recipient of the data, the sender of the data, routing information, priority information, any other header information, or a combination thereof. In some embodiments where the set of encoded spatio-temporal patterns includes at least three colors, at least one of the at least three colors may include header information indicating the intended recipient of the data, as 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 decoding the set of encoded spatio-temporal patterns to read the header information in the data. In some embodiments, at least one of the at least three colors may include header information indicating the priority of the data, as discussed in conjunction withFigure 5 As further discussed.

[0052] In some embodiments where the set of encoded spatio-temporal patterns 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 encoded data itself, and at least two colors are used to encode the data. In some embodiments where the set of encoded spatio-temporal patterns 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 encoded data itself, and the first intensity level and the second intensity level are used to encode the data. For example, the header information can include the recipient of the data, the sender of the data, routing information, priority information, any other header information, or combinations thereof.

[0053] Although the header information can indicate a requirement for using the header, the claims are not limited to such uses. In some embodiments, the set of encoded spatio-temporal patterns does not include header information. In some embodiments, the data to be encoded does not include a header but includes header information.

[0054] In some embodiments, at least one code symbol among the code symbols in the encoded spatio-temporal pattern can include an intensity level different from other code symbols. For example, the different intensity levels can include header information indicating the intended recipient of at least a portion of the data, as discussed in connection with Figure 6 As further discussed. In some embodiments, the different intensity levels can include header information indicating the priority of the data, as discussed in connection with Figure 6 As further discussed.

[0055] In some embodiments, the spatio-temporal pattern can further include a near-visible light mode, 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 can indicate the intended recipient of the encoded data, as discussed in connection with Figure 9 As further discussed. In some embodiments, using near-visible light can indicate the priority of the data, as discussed in connection with Figure 9 As further discussed. In some embodiments, near-visible light can be used to encode the data.

[0056] In some embodiments, the encoded spatio-temporal pattern can include a shape factor. For example, the shape factor can indicate the intended recipient of the data, as discussed in connection with Figure 11 As further discussed. In another example, the shape factor can indicate the priority of the data, as discussed in connection with Figure 11 As further discussed. In yet another example, the shape factor can be used to encode the data.

[0057] In some embodiments, the encoded spatio-temporal pattern may include a location factor. For example, the location factor may indicate the intended recipient of the data, as further discussed in conjunction with Figure 11 what is further discussed. In another example, the location factor may indicate the priority of the data, as further discussed in conjunction with Figure 11 what is further discussed. In some embodiments, the encoded spatio-temporal pattern may include a size factor, as further discussed in conjunction with Figure 13 what is 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 bandwidth flexibility, as using larger spatio-temporal patterns provides higher bandwidth for data transmission.

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

[0059] Methods 100A-100D include outputting the set of encoded spatio-temporal patterns at stages 106A-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 the set (or Figure 1E the first and second sets therein) of encoded spatio-temporal patterns further includes displaying the output set of encoded spatio-temporal patterns.

[0060] In some embodiments, the set of encoded spatio-temporal patterns 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 set of encoded spatio-temporal patterns may be displayed by a display device not optimized for human vision. For example, as technology improves, the spatio-temporal pattern may be displayed by a display device capable of displaying microwaves, infrared rays, ultraviolet rays, 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 - 120 Hz, while projectors can reach 120 - 240 Hz. Gaming monitors typically require a higher refresh rate, some even reaching 360 Hz. Currently, the highest refresh rate of known non - commercial experimental monitors is 10 kHz, but with technological improvements, it is expected that these refresh rates will increase in the future. One possible advantage of having a higher refresh rate in 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 set of encoded spatio - temporal patterns further includes displaying at least a portion of the set of encoded patterns on a display device having a bi - directional screen. A bi - directional screen (such as a projector screen) supports bi - directional information transfer from a transmitting projector and transmitting node and back to the transmitting node and associated acquisition device, as discussed further in Figure 4 connection with. In some embodiments, the bi - directional screen can include a pair of one - way screens facing in opposite (or substantially opposite) directions. One possible advantage of using a bi - directional screen is that it enables the transmitting node to verify that the data transfer has been successfully sent (e.g., without any corruption, without overlapping with other transmissions, or without any other aberrations). In some embodiments, the transmitting node can observe available additional bandwidth in the form of blank screen space on the bi - directional screen and expand its transmission size to increase the transmission rate.

[0063] In some embodiments, the projector 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 and transmit light. 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 other 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 that the data transfer has been successfully sent (e.g., without any corruption, without overlapping with other transmissions, or without any other aberrations). 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 located anywhere behind, adjacent to, or in front of the transmitting node. In some embodiments, the transmitting node can observe available additional bandwidth in the form of blank screen space on the rear - projection screen and expand its transmission size to increase the transmission rate.

[0064] In some embodiments, outputting the set of encoded spatio - temporal patterns further includes displaying the output set of encoded spatio - temporal patterns on two or more display devices, as discussed further in Figures 3A - 3B connection with.

[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 further in conjunction with Figure 15 as follows.

[0066] Figures 2A - 2E Flowcharts including methods 200A, 200B, 200C, 200D, 200E that illustrate methods of decoding data (such as data encoded by one or more of methods 100A, 100B, 100C, 100D, 100E) in a data center are described simultaneously for ease of description. Methods 200A, 200B, 200C, 200D include spatio-temporally obtaining a set (or Figure 2E a first set and a second set in Figure 2E such as shown in stage 208E of Figure 2B a set of encoded spatio-temporal patterns (e.g., the set of encoded spatio-temporal patterns encoded by methods 100A, 100B, 100C, 100D, 100E). Spatio-temporally obtaining a set of encoded spatio-temporal patterns may include spatio-temporally obtaining a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns (as shown in stage 208E of Figure 2C ), and / or the spatio-temporal pattern may include at least three colors (as shown in stage 208B of Figure 2D ), a first intensity level and a second intensity level (as shown in stage 208C of

[0067] ), visible light and near-visible light (as shown in stage 208D of

[0068] ), or a combination thereof. In some embodiments, the set (or first set and second set) of encoded spatio-temporal patterns includes two colors. In some embodiments, the set (or first set and second set) of encoded spatio-temporal patterns includes one color.

[0069] In some embodiments, there may be more than one acquisition device to acquire a set of encoded spatio-temporal patterns, as discussed further in conjunction with Figures 3A - 3B For example, in some embodiments where data is intended to be broadcast to multiple nodes, a first sending node may output data, and multiple receiving nodes may simultaneously acquire 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) display device may use only one (e.g., a single) acquisition device (e.g., the ratio of the acquisition device to the display device is 1:1). In some embodiments, a single display device may have two or more acquisition devices, as discussed further in conjunction with Figures 3A - 3B For example, in some embodiments where data is intended to be broadcast to multiple nodes, a first sending node may output data, and multiple receiving nodes may simultaneously acquire 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) display device may use only one (e.g., a single) acquisition device (e.g., the ratio of the acquisition device to the display device is 1:1). In some embodiments, a single display device may have two or more acquisition devices, as discussed further in conjunction with

[0070] Method 200A - 200E then includes decoding the set (or Figure 2E the first set and the second set among them) of encoded spatio-temporal patterns into decoded data at stages 210A - 210D. In some embodiments, decoding the set of encoded spatio-temporal patterns includes decoding at least three colors, as shown in stage 210B. In some embodiments, decoding the set of encoded spatio-temporal patterns includes decoding a first intensity level and a second intensity level, as shown in stage 210C. In some embodiments, decoding the set of encoded spatio-temporal patterns includes decoding visible light and near-visible light, as shown in stage 210D. 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. Method 200E then includes decoding the first set of decoded data and the second set of decoded data at stage 210E.

[0071] In some embodiments, the decoded data is un-serialized data in matrix form. One possible benefit of transmitting un-serialized data is that there is no need to pass through multiple physical or software component layers between applications, thus saving data transmission time. Another possible benefit of transmitting un-serialized data is that the possibility of data corruption, data theft, and data limitation can be minimized.

[0072] 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.

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

[0074] Then, methods 200A - 200D include storing the decoded data at stages 212A - 212D. Then, method 200E includes storing a first set of decoded data and a second set of decoded data 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 further discussed in conjunction with Figures 3A - 3B For example, the first set of decoded data may be stored at a first receiving node and the second set of decoded data may be stored at a second receiving node. The storage device may include an HDD, an SSD, an optical storage device, any other type of non-volatile storage device for long-term or short-term data storage, or a combination thereof. In some embodiments, storing the data may include storing the data in 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 temporary data storage, or a combination thereof. In some embodiments, storing the decoded data further includes storing the decoded data in a buffer and further transmitting the data to another receiving node.

[0075] Figure 3A and Figure 3B are examples of a data center according to at least one embodiment. As used herein, the term "data center" generally refers to interconnected nodes located 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 in 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 may refer to a single device. Additionally, a node may perform processes such as encoding and decoding of data. In some embodiments, the encoder and decoder may be separate physical computing devices. In some embodiments, the encoder and decoder may 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 3AA front view of five racks (301_1, 301_2, 301_3, 301_4, 301_5) including various physical nodes within a data center is shown. For example, rack 301_1 includes a decoder 364, an encoder 366, a storage device 368, and four servers 370, while rack 301_5 includes servers 370, an encoder 366, a decoder 364, and four storage devices 368. In Figure 3A In the illustrated embodiment, each rack includes seven physical nodes, but 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, the nodes are 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, while a second display device may point in a second direction, where the second direction may be at an angle between 90 degrees and 180 degrees with respect to the first direction. In another example, a display device may rotate 360 degrees and adjust its orientation based on the position of the acquisition device of the receiving node within the data center. The 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 including virtual machines that provide web search, website hosting, system updates, application development and testing, other suitable computing services, or combinations thereof to users. In some embodiments, one or more applications may reside on the nodes. 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 combinations thereof.

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

[0079] Figure 3B A side view shows five racks 301_1, 301_2, 301_3, 301_4, 301_5 (such as the racks shown Figure 3A in) within a data center, as well as an additional five racks 301_6, 301_7, 301_8, 301_9, 301_10 (including various different physical nodes). 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) that is connected to one or more nodes on rack 301_6. For example, a server node residing in rack 301_6 may transfer data to a storage device node residing in rack 301_1. The server node on rack 301_6 may transfer data to an encoder in one or more of the nodes residing on rack 301_6. The encoder may encode the data into one or more sets of encoded spatio-temporal patterns, such as in combination with Figure 5The encoded spatio-temporal patterns discussed with reference to FIGS. 1 to 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 the rack 301_1. The decoder decodes the set of encoded spatio-temporal patterns into data and delivers it to a storage device node in the rack 301_1 for storage. Similarly, one or more nodes residing on the rack 301_2 can perform data transmission with one or more nodes residing on the rack 301_7, one or more nodes residing on the rack 301_3 can perform data transmission with one or more nodes residing on the rack 301_8, one or more nodes residing on the rack 301_4 can perform data transmission with one or more nodes residing on the rack 301_9, and one or more nodes residing on the rack 301_5 can perform data transmission with one or more nodes residing on the rack 301_10.

[0080] In some embodiments, a sending node can simultaneously perform data transmission with two or more receiving nodes. For example, a sending node on the 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 the first set of encoded spatio-temporal patterns from the display device 303_61, and the acquisition device 305_21 can obtain the second set of encoded spatio-temporal patterns from the display device 303_61.

[0081] Figure 4 is an 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 in connection with Figures 3A - 3BThe nodes under discussion (364, 366, 368, 370). The data center also includes one or more projectors (407_1, 407_2, and 407_3), one or more projector screens 409, and multiple 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 projector screen 409. One or more projectors can be configured to project the spatio-temporal pattern onto the projector 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 onto the projector screen 409. One or more acquisition devices 405 can be configured to acquire the spatio-temporal pattern from the projector screen 409. In some embodiments, the acquisition device 405 acquires the spatio-temporal pattern from the projector 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 that the data is correctly sent, as discussed in conjunction with Figure 23 as further discussed. One possible advantage of using projectors and projector screens for data transmission is that a single sending node can reach multiple different nodes, where each of the multiple different nodes is capable of receiving data through an acquisition device. Another possible advantage of using projectors and projector 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 that includes a code symbol 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, while the third color can be used as header information. For example, the header information can identify the recipient of the data and / or the header information can indicate the priority of 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 third color is red, 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 it or whether it can ignore at least a portion of the data without decoding the set of encoded spatio-temporal patterns to read the potential header information. This is beneficial in situations 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 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 of the data is normal; and if the third color 520 is red, the priority of the data is high. One possible advantage of using color to indicate the priority of data is that in the case where a display device (e.g., a projection screen) outputs more than one set of encoded spatio-temporal patterns simultaneously, it is easy to identify an emergency data transmission. Then, the first receiving node can first decode the set of encoded spatio-temporal patterns with a higher priority, and then it decodes the set of encoded spatio-temporal patterns with a normal priority.

[0085] Even though the spatio-temporal pattern examples herein 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 discussed.

[0086] Figure 6 is an example of an encoded spatio-temporal pattern 614 that includes a code symbol having 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 may be red having a first intensity level, the second color 618 may be green having a first intensity level, the third color 620 may be blue having a first intensity level, and red having a 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 may have more than one color having a second intensity level. In some embodiments, for one or more of the three or more colors, the encoded spatio-temporal pattern may have more than two different intensity levels.

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

[0088] The first color having a second intensity level 622 may indicate the intended recipient. In one embodiment, different intensities indicate different receiving nodes. For example, if the intensity level of the first color is low, the data is for the first receiving node; and if the intensity level of 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 it without decoding the set of encoded spatio-temporal patterns to read the header information. This is beneficial in situations where multiple receiving nodes obtain the set of encoded spatio-temporal patterns.

[0089] In some embodiments, the intensity level may be used to indicate the priority for data transmission. For example, if the intensity level is medium, the priority of the data is normal; if the intensity level is high, the priority of the data is high. One possible advantage of using intensity to indicate the priority of the 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 will first decode the set of encoded spatio-temporal patterns with a higher priority, and then it will decode the set of encoded spatio-temporal patterns with a normal priority.

[0090] Figure 7 is an example of an encoded spatio - temporal pattern 714 that includes a code symbol having at least two different intensity levels and one color, according to at least one embodiment. The encoded spatio - temporal pattern 714 includes one color having a first intensity level 716 and the same color having a second intensity level 722. For example, in Figure 7 , the color having the first intensity level 716 and the second intensity level 722 can be red. In some embodiments, the 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 recipient of the data and / or the header information can indicate the priority of the data. For example, the red color can indicate that the data is for a first receiving node, while the blue color can indicate that the data is for a 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 it, without having to decode the set of encoded spatio - temporal patterns to read the header information. This is beneficial in a scenario where multiple receiving nodes obtain the set of encoded spatio - temporal patterns.

[0092] Figure 8 is an example of an encoded spatio - temporal pattern 814 that includes a code symbol having at least two different intensity levels and two colors, according to at least one embodiment. The encoded spatio - temporal pattern 814 includes one color having a first intensity level 816 and the same color having a second intensity level 822. The encoded spatio - temporal pattern 814 also includes a second color having 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 having 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 having the first intensity level 816 can have a value of 1, and the first color having 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, while the second intensity level 822 is used as header information. The header information can identify the recipient of the data and / or the priority of the data. For example, in Figure 8 , if the second intensity level is low, the data will be for the first receiving node; and if the second intensity level is high (e.g., higher than the first intensity level), the data will be for the second receiving node.

[0094] Figure 9is an example of an encoded spatio-temporal pattern 914 that includes code symbols with 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 Figure 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 that can be activated to "on" or "off". In some embodiments, a TV screen can implement visible light sources and near-visible light sources on a display. For example, individual pixels can be activated using visible light 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 recipient of the data and / or can indicate the priority of the data.

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

[0097] In some embodiments, two colors and 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 recipient of the data and / or can indicate the priority 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 recipient of the data and / or can indicate the priority of the data.

[0099] In Figure 9In 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 certain pattern (such as a vertical line) within the set of encoded visible light patterns, the data is for the first receiving node; and if the near visible light forms a square within the set of encoded visible light 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 node can more quickly determine whether the data is for them or whether they can ignore it without having to decode the set of encoded spatio-temporal patterns 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 for data transmission. For example, if the near visible light code symbol 924 is "off", the priority of the data is normal; and if the near visible light code symbol 924 is "on", the priority of the data is high. One possible advantage of using the near visible light code symbol 924 to indicate the priority of the data is that in the case of simultaneously outputting more than one set of encoded spatio-temporal patterns on a display device, it is easy to identify an emergency data transmission. Then, the first receiving node can first decode the set of encoded spatio-temporal patterns with a higher priority, and then it decodes the set of encoded spatio-temporal patterns with normal priority.

[0102] Figure 10 is an example of an encoded spatio-temporal pattern 1014 that includes 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 Figure 10 In the illustrated embodiment, the encoded spatio-temporal pattern 1014 may have a first color 1016 (white with a value of 1) and a second color 1018 (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 may identify the recipient of the data and / or may indicate the priority of the data, as previously described in connection with Figure 9 as explained.

[0104] Figure 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 7x7 code symbols, while the second set of encoded spatio-temporal patterns 1114_2 has 6x9 code symbols. In some embodiments, the shape of a set of encoded spatio-temporal patterns may be used as header information. For example, the header information may identify the recipient of the data and / or may indicate the priority of the data.

[0105] In Figure 11 the illustrated embodiment, the shape of the encoded spatio-temporal pattern 1114 may indicate the intended recipient. In one embodiment, the shape of the encoded spatio-temporal pattern may indicate different receiving nodes. For example, in Figure 11 , the encoded spatio-temporal pattern 1114_1 is shaped as a square, which means the data is for the first receiving node; and the encoded spatio-temporal pattern 1114_2 is shaped as a rectangle, which means the data is for the second receiving node. In another example, if the shape of the encoded spatio-temporal pattern is a hexagon, the data is for the first receiving node; if the shape of the encoded spatio-temporal pattern is a triangle, the data is for the second receiving node; and if the shape of the encoded spatio-temporal pattern is a circle, the data is for the third receiving node.

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

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

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

[0109] In Figure 11 the illustrated embodiment, the position of the encoded spatio-temporal pattern can indicate the intended recipient. For example, in Figure 11 the encoded spatio-temporal pattern 1114_1 is located at the upper left corner of the display, which means the data is for the first receiving node; while the encoded spatio-temporal pattern 1114_2 is located at the lower right corner, which means 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 that the receiving node can decide in a faster way whether the data is for them or whether they can ignore it without decoding the set of encoded spatio-temporal patterns to read the header information. This is beneficial in situations where multiple receiving nodes record or obtain the encoded spatio-temporal patterns.

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

[0112] 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.

[0113] Figure 12 is an example of two or more sets of encoded spatio-temporal patterns that are transmitted simultaneously according to at least one embodiment. Figure 12Four different data sets that have been encoded as spatio-temporal patterns are shown. 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 can be "off" (i.e., no color is displayed in the area), the second color can be red, the third color can be green, and the fourth color can be blue (e.g., pattern 1214_1 consists of the red color and "off", 1214_2 consists of the green color and "off", 1214_3 consists of the red color and "off", and 1214_4 consists of the blue color and "off"). In some embodiments, the first sending node can transmit all four data sets. In some embodiments, the first sending node can transmit one or more of the data sets, and the second sending node can transmit one or more of the data sets. In some embodiments, each of the four data sets is intended to be sent to a separate receiving node. In some embodiments, all four data sets are intended to be sent to the same receiving node.

[0114] In Figure 12 In the illustrated embodiments, each of the four spatio-temporal patterns includes two different colors. In some embodiments, the different colors can 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 spatio-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 determine whether the data is for it or whether it can ignore at least a portion of the data without decoding the set of encoded spatio-temporal patterns to read potential header information. This is beneficial in situations 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 two patterns are intended to be sent to the first receiving node. Similarly, when the second receiving node receives the spatio-temporal patterns, it only needs to decode 1214_2, because only this pattern is intended to be sent to the second receiving node; and similarly, the third receiving node only needs to decode 1214_4.

[0115] In some embodiments, colors can be used to indicate the priority for data transmission (e.g., at least a portion of the data transmission of all data being sent). For example, when the color is blue, the priority of the data is normal; if the color is red, the priority of the data is high; and if the color is green, the priority of the data is low. One possible advantage of using colors to indicate the priority of 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 possible to easily identify emergency data transmissions. Then, the receiving node can first decode the set of encoded spatio-temporal patterns with a higher priority, and then it decodes the set of encoded spatio-temporal patterns with a normal priority. For example, in Figure 12 the receiving node is 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] Figure 13 is an example of two sets of encoded spatio-temporal patterns with different sizes according to at least one embodiment. The first set of encoded spatio-temporal patterns 1314_1 has 7x7 code symbols, while the second set of encoded spatio-temporal patterns 1314_2 has 12x7 code symbols. In some embodiments, the amount of encoded data for a given pattern is smaller. In Figure 13 the spatio-temporal pattern 1314_1 is smaller than the spatio-temporal pattern 1314_2, so 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 (e.g., the amount of code symbols it has) on the spatio-temporal pattern can be used as header information. In some embodiments, the header information can identify the recipient of the data. For example, the spatio-temporal pattern with 7x7 code symbols can be for a first receiving node, while the spatio-temporal pattern with 12x7 code symbols can be for a second receiving node. In some embodiments, the header information can indicate the priority of the data. For example, the spatio-temporal pattern with the least amount of code symbols can have a lower priority than the spatio-temporal pattern with the most amount of code symbols. One possible benefit of using spatio-temporal patterns of various sizes is to allow a given receiving node to receive data with a higher priority for processing, thus allowing the sending node to dynamically adjust the encoded data being processed by a given node.

[0117] In Figure 13 the embodiment shown, 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 Figure 13In [the above], the size of the individual code symbol 1316_1 in the encoded spatio-temporal pattern 1314_1 is 10x10 pixels, which means that the data is for the first receiving node; and the size of the individual code symbol 1316_2 is 15x15 pixels, which means that the data encoded in 1314_2 is for the second receiving node. In another embodiment, the size of the individual code symbol 1316_1 on the display can be 5x5 pixels, and the size of the individual code symbol 1316_2 on the display can be 10x10 pixels. One possible advantage of using size to identify the intended recipient is that the receiving node can determine more quickly whether the data is for them or whether they can ignore it without having to decode the set of encoded spatio-temporal patterns to read the header information. This is beneficial in situations where multiple receiving nodes record or obtain the encoded spatio-temporal patterns.

[0118] In some embodiments, the size can be used to indicate the priority for data transmission. For example, if the size of the individual code symbol 1316_1 is small, the priority of the data is normal; and if the size of the individual code symbol 1316_2 is large, the priority of the data is high. One possible advantage of using size to indicate the priority of the 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 set of encoded spatio-temporal patterns with a higher priority, and then it decodes the set of encoded spatio-temporal patterns with a normal priority.

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

[0120] In some embodiments, two or more sets of encoded spatio-temporal patterns can originate from the 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 to be sent to the first receiving node. In some embodiments, two or more sets of encoded spatio-temporal patterns are intended to be sent to two or more receiving nodes.

[0121] Figure 14A and Figure 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 patterns 1414_1 has 7x7 code symbols, and the second set of encoded spatio-temporal patterns 1414_2 has 7x7 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 recipient of the data.

[0122] In Figure 14A and Figure 14B the embodiment shown, which of the two encoded spatio-temporal patterns 1414_1 and 1414_2 has a timing that is visible on the display at a particular time (t = 0 ( Figure 14A ) and t = 1 ( Figure 14B )) can indicate the intended recipient. For example, in Figure 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 receiving node.

[0123] In Figure 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 that the receiving node can determine more quickly whether the data is for them or whether they can ignore it without having to decode the set of encoded spatio-temporal patterns to read the header information. This is beneficial in situations where there are multiple receiving nodes recording or obtaining the encoded spatio-temporal patterns.

[0124] In some embodiments, the timing of the transmission is synchronized between the sending node and the receiving node by synchronizing the internal clocks of the sending node and the receiving node or by synchronizing with a third clock. In some embodiments, the timing of the transmission is initiated by using a marker (such as a start pattern displayed before the start of the transmission).

[0125] 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 to be sent to a first receiving node. In some embodiments, two or more sets of encoded spatio-temporal patterns are intended to be sent to two or more receiving nodes.

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

[0127] Figure 15is an example of two sets of encoded spatio-temporal patterns that partially overlap according to at least one embodiment. In Figure 15 the illustrated embodiment, the first set of encoded spatio-temporal pattern 1514_1 has 7x7 code symbols, and the second set of encoded spatio-temporal pattern 1514_2 has 6x9 code symbols. The first set of encoded spatio-temporal pattern 1514_1 and the second set of encoded spatio-temporal pattern 1514_2 partially overlap, as shown by the dashed rectangle 1527. This overlap in data transmission is commonly referred to as multiplexing. "Spatio-temporal multiplexing" in this context is used to describe how more than one stream of encoded spatio-temporal patterns (e.g., two sets of data) are 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 Figure 15 the first color 1516 may be red, the second color 1518 may be green, and the third color 1520 may be blue. In Figure 15In the illustrated embodiment, five of the code symbols (e.g., code symbols 1528, 1530, 1532, 1534, 1536) overlap each other. The code symbol 1528 has the same color as the code symbol 1520, so the decoder will be able to infer that the code symbol 1528 on the encoded spatio-temporal pattern group 1514_1 and the encoded spatio-temporal pattern group 1514_2 should have the same color as 1520. The code symbol 1530 has a fourth color, which is different from the three known colors of each group of encoded data (e.g., colors 1516, 1518, 1520). For example, the encoder can use the fourth color 1530 to encode the combination of the first color 1516 on the first group of encoded spatio-temporal patterns 1514_1 and the second color 1518 on the second group of encoded spatio-temporal patterns 1514_2. The code symbol 1532 has a fifth color, which 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 group of encoded spatio-temporal patterns 1514_1 and the third color 1530 on the second group of encoded spatio-temporal patterns 1514_2. The code symbol 1534 has a sixth color, which 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 group of encoded spatio-temporal patterns 1514_1 and the first color 1516 on the second group of encoded spatio-temporal patterns 1514_2. The code symbol 1536 has a seventh color, which 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 group of encoded spatio-temporal patterns 1514_1 and the first color 1516 on the second group of encoded spatio-temporal patterns 1514_2. A table of a possible color combination for encoding and decoding is provided below:

[0129]

[0130] One possible advantage of overlapping two or more groups of encoded spatio-temporal patterns is that more groups of encoded spatio-temporal patterns can be simultaneously displayed in a smaller display area compared to displaying each group of patterns separately. Thus, this can increase the bandwidth of the communication channel. This overlap of two or more groups of encoded spatio-temporal patterns can be referred to as spatio-temporal multiplexing. In some embodiments, two or more groups of encoded spatio-temporal patterns completely overlap.

[0131] In some embodiments, two or more sets of encoded spatio-temporal patterns that at least partially overlap can originate from a first sending node. In some embodiments, two or more sets of encoded spatio-temporal patterns that at least partially overlap can originate from two or more sending nodes. In some embodiments, two or more sets of encoded spatio-temporal patterns that at least partially overlap are intended to be sent to a first receiving node. In some embodiments, two or more sets of encoded spatio-temporal patterns that at least partially overlap are intended to be sent to two or more receiving nodes.

[0132] Figure 16 is an example of two or more sets of encoded spatio-temporal patterns that partially overlap according to at least one embodiment. Figure 16 Shows four different data sets (1614_1, 1614_2, 1614_3, 1614_4) that have been encoded as spatio-temporal patterns. 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 can be "off" (i.e., no color is displayed in the area), the second color 1618 can be red, the third color 1620 can be green, and the fourth color 1630 can be blue (e.g., pattern 1614_1 consists of red color and "off", 1614_2 consists of green color and "off", 1614_3 consists of red color and "off", and 1614_4 consists of blue color and "off"). In some embodiments, the first sending node can transmit all four data sets. In some embodiments, the first sending node can transmit one or more of the data sets, and the second sending node can transmit one or more of the data sets. In some embodiments, each of the four data sets is intended to be sent to a separate receiving node. In some embodiments, all four data sets are intended to be sent to the same receiving node.

[0133] In Figure 16In the illustrated embodiment, the first spatio-temporal pattern 1614_1 and the second spatio-temporal pattern 1614_2 partially overlap, as demonstrated 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 demonstrated by the dashed rectangle 1627_2. In one embodiment, each overlapping code symbol will reflect two colors of the code symbols 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, then the reflected code symbol will reflect both red and blue. To 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 1614_3 spatio-temporal pattern includes the red color and the 1614_4 spatio-temporal pattern includes the blue color, the encoder will be able to correctly decode the overlapping code symbols. One possible benefit of overlapping two or more spatio-temporal patterns is to provide bandwidth flexibility, because the partial overlap provides more available space for the display or screen to output more spatio-temporal patterns.

[0134] 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 may overlap.

[0135] In Figure 16In 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 spatio-temporal 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 a portion of the data without decoding the set of encoded spatio-temporal patterns to read the potential header information. This is beneficial in situations 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 1614_1 and 1614_3 because only these two patterns are intended to be sent to the first receiving node. Similarly, when the second receiving node receives the spatio-temporal patterns, it only needs to decode 1614_2 because only this pattern is intended to be sent to the second receiving node; and similarly, the third receiving node only needs to decode 1614_4.

[0136] In some embodiments, colors may be used to indicate the priority 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 of the data is normal; if the color is red, the priority of the data is high; and if the color is green, the priority of the data is low. One possible advantage of using colors to indicate the priority of 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 urgent data transmissions. Then, the receiving node can first decode the set of encoded spatio-temporal patterns with a higher priority, and then it decodes the set of encoded spatio-temporal patterns with a normal priority. For example, in Figure 16 the receiving node can 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.

[0137] Figure 17A 、 Figure 17B and Figure 17CAn example of a set 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 grouping 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 a display. For example, the first encoded spatio-temporal pattern in the set of spatio-temporal patterns is displayed at a first position, while 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 other encoded spatio-temporal pattern in the set. 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.

[0138] In Figure 17A the illustrated embodiment, at t = 0, the first encoded spatio-temporal pattern in a set of encoded spatio-temporal patterns 1714 has a first position relative to a display 1726. As Figure 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 Figure 17C shown, at t = 2, the third encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns 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 a receiving node receives the first encoded spatio-temporal pattern and the third encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns 1714, the receiving node can detect that they have missed the second encoded spatio-temporal pattern in the set of encoded spatio-temporal patterns 1714.

[0139] In some embodiments, an encoded spatio-temporal pattern can move from a first position to a second position relative to time. In some embodiments, an 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, up and down, down and up, from upper left to lower right, from lower left to upper right, etc.). In some embodiments, an encoded spatio-temporal pattern can move seemingly randomly relative to time. As long as the decoder knows the expected movement of each encoded spatio-temporal pattern relative to time, it can detect whether they have missed one or more encoded spatio-temporal patterns in the encoded spatio-temporal patterns. In some embodiments, an encoded spatio-temporal pattern can move in space according to a predetermined pattern relative to time. In some embodiments, encoding data as a set of encoded spatio-temporal patterns includes combining Figure 5 two or more of the different encoding mechanisms described with reference to FIG. 17.

[0140] Figure 18is an example of two sets of encoded spatio-temporal patterns with different positions, shapes, sizes, at least three different colors, two different intensity levels, and visible and near-visible light. The first set of encoded spatio-temporal patterns 1814_1 has 7x7 code symbols, while the second set of encoded spatio-temporal patterns 1814_2 has 12x7 code symbols. Each code symbol in the first set of encoded spatio-temporal patterns 1814_1 occupies a smaller size on the display or projector screen than each code symbol in the second set of encoded spatio-temporal patterns 1814_2 on the same display device.

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

[0142] It should be understood that any combination of the different encoding mechanisms described in connection with Figure 5 FIGs. 1 to 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 to encode data, indicate the intended recipient, indicate the priority for data transmission, other indications, or combinations thereof. For example, in Figure 18 the illustrated embodiment, the second set of encoded spatio-temporal patterns 1814_2 does not use the second color of the second intensity level, and the first set of encoded spatio-temporal patterns 1814_1 does not use near-visible light.

[0143] Figures 19A - 19C illustrates another example of encoding data into a set of encoded spatio-temporal patterns including two or more of the different encoding mechanisms described in connection with Figures 5 - 11 FIGs. The first set of encoded spatio-temporal patterns 1914_1 has 7x7 code symbols with three different colors; and the second set of encoded spatio-temporal patterns 1914_2 has 7x7 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 as Figures 19A - 19CIn the illustrated embodiment, every other position of the first set of encoded spatio-temporal patterns 1914_1 is located to the left of the display 1926, while every other position is located to the right of the display 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 example in the examples provided in Figure 15 any of the examples provided.

[0144] Figures 20A - 20D An example of encoding data as a set of encoded spatio-temporal patterns that move in space relative to time according to at least one embodiment is illustrated. In Figure 20A the illustrated embodiment, at t = 0, the first encoded spatio-temporal pattern (shaped like a triangle) in the set of encoded spatio-temporal patterns 2014 has a first position relative to the display 2026. As Figure 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 Figure 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 Figure 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 Figures 20A - 20D the illustrated embodiment, the encoded spatio-temporal patterns appear to move randomly between different 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 one or more of the encoded spatio-temporal patterns are missing. For example, if the decoder receives Figure 20A , Figure 20B , and Figure 20D the encoded spatio-temporal patterns shown in, then the decoder can detect that they are missing the pattern shown in Figure 20C because the third encoded spatio-temporal pattern should be in the upper left corner, but the received third pattern ( Figure 20D ) is in the middle of the screen, and the decoder knows that it should be the fourth spatio-temporal pattern in that position.

[0145] The present disclosure includes many practical applications that provide benefits associated with and / or solve problems associated with methods for transmitting data via free space spatio-temporal modes. 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 several receiving nodes can see a single screen / display, or when a single transmitting node can transmit to several screens / displays, thereby allowing a single node to select to connect to each of the other nodes.

[0146] Figure 21 FIG. is a thread diagram illustrating a method 2100 for transmitting data in a data center. Various optional steps are 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 at an optional stage 2140. The data may be of a specific data type. For example, the data type may be numeric, alphanumeric, binary, Kanji, any other type of data, or a combination thereof. In some embodiments, transmitting the data to the encoder includes transmitting the data from a first sending node (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 code, and any other information typically stored in a packet header. In some embodiments, the data includes only data without any header information.

[0147] In some embodiments, as described above, the first sending node may be a server including a virtual machine. 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, media player, 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, SSD, optical storage device, any other type of non-volatile storage device for long-term or short-term data storage, 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, RAM, DRAM, SRAM, or other suitable volatile memory device for temporarily storing data.

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

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

[0150] 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, and each spatio-temporal pattern is transmitted in sequence.

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

[0152] In some embodiments, the data is not serialized before it is encoded, but can be sent as non-serialized data in matrix form. One possible benefit of transmitting non-serialized 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 non-serialized data is that it can minimize the possibility of data corruption, data theft, and data restriction.

[0153] In some embodiments, encoding data into a 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 7x7 code symbols, as previously discussed in connection with Figure 5 . In another example, the encoded spatio-temporal patterns can include 6x9 code symbols, as previously discussed in connection with Figure 11As discussed. In additional examples, the encoded spatio-temporal patterns can be organized in other ways, including being encoded into shapes that do not have straight edges or typical geometries.

[0154] In some embodiments, encoding the data into code symbols can also 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, whose values can be, for example, 1 or 0.

[0155] 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 of 400 nanometers to 700 nanometers). In some embodiments, the first color can be an "on" color, while the second color can be an "off" color. For example, in a two-color system, the first color can be white (color "on"), while the second color can be black (color "off"). In another example, in a two-color system, the first color can be red (color "on"), while 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 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.

[0156] 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 or four bit indicators accordingly). One possible advantage of using an encoding higher than two bits in at least one embodiment where at least three different colors are used to encode data is that it allows for more efficient encoding of data and faster output of the encoded data compared to a two-bit encoding system. Another possible advantage of using three or more colors is to provide bandwidth flexibility, because the more colors used, the higher the bandwidth provided for data transmission.

[0157] 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 (value 1) and red at the second intensity level (value 0), as previously discussed in connection with Figure 7 as discussed.

[0158] In some embodiments where the set of encoded spatio-temporal patterns 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) that can be encoded by an encoder for encoding data. For example, the set of encoded spatio-temporal patterns may include red with a value of 1 and blue with a value of 0, as previously discussed in connection with Figure 8 as discussed.

[0159] In some embodiments where the set of encoded spatio-temporal patterns includes 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 set of encoded spatio-temporal patterns may include white with a value of 1 and black with a value of 0, as previously discussed in connection with Figure 10 as discussed.

[0160] In some embodiments where the set of encoded spatio-temporal patterns 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 may include the recipient of the data, the sender of the data, routing information, priority information, any other header information, or a combination thereof. In some embodiments where the set of encoded spatio-temporal patterns includes at least three colors, at least one of the at least three colors may include header information indicating the intended recipient of the data, as further discussed in connection 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 decoding the set of encoded spatio-temporal patterns to read the header information in the data. In some embodiments, at least one of the at least three colors may include header information indicating the priority of the data, as further discussed in connection with Figure 5 as further discussed.

[0161] In some embodiments where the set of encoded spatio-temporal patterns 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 encoded data itself, and at least two colors are used to encode the data. In some embodiments where the set of encoded spatio-temporal patterns 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 encoded data itself, and the first intensity level and the second intensity level are used to encode the data. For example, the header information can include the recipient of the data, the sender of the data, routing information, priority information, any other header information, or a combination thereof.

[0162] Although the header information can indicate a requirement for using the header, the claims are not limited thereto. In some embodiments, the set of encoded spatio-temporal patterns does not include header information. In some embodiments, the data to be encoded does not include a header but includes header information.

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

[0164] In some embodiments, the spatio-temporal pattern can further include a near-visible light mode, 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 can indicate the intended recipient of the encoded data, as discussed in conjunction with Figure 9 as further discussed. In some embodiments, using near-visible light can indicate the priority of the data, as discussed in conjunction with Figure 9 as further discussed. In some embodiments, near-visible light can be used to encode the data.

[0165] In some embodiments, the encoded spatio-temporal pattern can include a shape factor. For example, the shape factor can indicate the intended recipient of the data, as discussed in conjunction with Figure 11 as further discussed. In another example, the shape factor can indicate the priority of the data, as discussed in conjunction with Figure 11 as further discussed. In yet another example, the shape factor can be used to encode the data.

[0166] In some embodiments, encoding a spatio-temporal pattern may include a location factor. For example, the location factor may indicate the intended recipient of the data, as further discussed in conjunction with Figure 11 as discussed further below. In another example, the location factor may indicate the priority of the data, as further discussed in conjunction with Figure 11 as discussed further below. In some embodiments, encoding a spatio-temporal pattern may include a size factor, as further discussed in conjunction with Figure 13 as discussed further below. 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 bandwidth flexibility, since using larger spatio-temporal patterns can provide higher bandwidth for data transmission.

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

[0168] 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 transmitted to the display wirelessly, via a cable, or via an optical fiber.

[0169] Then, method 2100 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.

[0170] 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 television 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, as technology improves, spatio-temporal patterns may be displayed by a display device capable of displaying microwaves, infrared rays, ultraviolet rays, X-rays, gamma rays, or any other wavelength in the electromagnetic spectrum.

[0171] 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 - 120 Hz, while projectors can reach 120 - 240 Hz. Gaming monitors typically require a higher refresh rate, some even reaching 360 Hz. Currently, the highest refresh rate of known non - commercial experimental monitors is 10 kHz, but with technological improvements, it is expected that these refresh rates will increase in the future. One possible advantage of having a higher refresh rate in 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.

[0172] In some embodiments, displaying the set of encoded spatio - temporal patterns further includes displaying at least a portion of the set of encoded patterns on a display device having a bi - directional screen. A bi - directional screen (such as a projector screen) supports bi - directional information transfer from a transmitting projector and transmitting node and back to the transmitting node and associated acquisition device, as discussed in conjunction with Figure 4 Further discussion. One possible advantage of using a bi - directional screen is that it enables the transmitting node to verify that the data transmission has been successfully sent (e.g., without corruption, without overlapping with other transmissions, or without any other aberrations). In some embodiments, the transmitting node can observe available extra bandwidth in the form of blank screen space on the bi - directional screen and expand its transmission size to increase the transmission rate.

[0173] In some embodiments, the projector 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 and transmit light. Light reflection 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 other 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 that the data transmission has been successfully sent (e.g., without any corruption, without overlapping with other transmissions, or without any other aberrations). 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 located anywhere behind, adjacent to, or in front of the transmitting node. In some embodiments, the transmitting node can observe available extra bandwidth in the form of blank screen space on the rear - projection screen and expand its transmission size to increase the transmission rate.

[0174] In some embodiments, displaying the set of encoded spatio - temporal patterns further includes displaying the output set of encoded spatio - temporal patterns on two or more display devices, as previously discussed in conjunction with Figures 3A - 3B As discussed.

[0175] In some embodiments, two or more sets of encoded spatio-temporal patterns are displayed. In some embodiments, the two or more sets of encoded spatio-temporal patterns at least partially overlap, as previously discussed in connection with Figure 15 as discussed.

[0176] As Figure 21 shown, method 2100 includes spatio-temporally obtaining a set (or first and second sets) of encoded spatio-temporal patterns (e.g., the set of encoded spatio-temporal patterns encoded at stage 2142) at stage 2148. Spatio-temporally obtaining a set of encoded spatio-temporal patterns can include spatio-temporally obtaining a first set and a second set of encoded spatio-temporal patterns, and / or the spatio-temporal pattern 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 (or first and second sets) of encoded spatio-temporal patterns includes two colors. In some embodiments, the set (or first and second sets) of encoded spatio-temporal patterns includes one color.

[0177] In some embodiments, spatio-temporally obtaining a set of encoded spatio-temporal patterns includes spatio-temporally obtaining 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, spatio-temporally obtaining a set (or first and second sets) of encoded spatio-temporal patterns includes spatio-temporally obtaining (e.g., capturing, detecting, identifying) via an acquisition device. For example, the acquisition 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.

[0178] In some embodiments, the acquisition device can capture at least the same (or higher) frame rate as the display device is capable of outputting to reduce or prevent data loss. In some embodiments, the acquisition 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.

[0179] In some embodiments, there can be more than one acquisition device obtaining the set of encoded spatio-temporal patterns, as previously discussed in connection with Figures 3A - 3B as discussed. For example, in some embodiments where data is intended to be broadcast to multiple nodes, a first transmitting node can output 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) display device can use only one (e.g., a single) acquisition device (e.g., the ratio of the acquisition device to the display device is 1:1). In some embodiments, a single display device can have two or more acquisition devices, as previously discussed in connection with Figures 3A - 3BAs discussed. In some embodiments, the acquisition device can capture 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.

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

[0181] As Figure 21 shown, method 2100 then includes, at stage 2152, decoding the set (or the first set 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 into first set of decoded data and second set of decoded data, as previously discussed in connection with Figure 2E As discussed.

[0182] In some embodiments, the decoded data is un-serialized data in matrix form. One possible advantage of transmitting un-serialized data is that there is no need to go through multiple physical or software component layers between applications, thus saving data transmission time. Another possible advantage of transmitting un-serialized data is that the possibility of data corruption, data theft, and data limitation can be minimized.

[0183] 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.

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

[0185] Method 2100 may also include transmitting the decoded data to a first receiving node at optional stage 2154. In some embodiments, two or more sets of data are transmitted to the first receiving node. The first receiving node may be a server including a virtual machine that 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 first receiving node. For example, the application receiving 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.

[0186] Method 2100 may also 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 in a storage device residing at one or more receiving nodes, as previously discussed in connection with Figures 3A - 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 long-term or short-term data storage, or a combination thereof. In some embodiments, storing the data may include storing the data in 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 temporary data storage, or a combination thereof. In some embodiments, storing the decoded data further includes storing the decoded data in a buffer and further transmitting the data to another receiving node.

[0187] 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.

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

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

[0190] Method 2200 may include transmitting the first set of data and the second set of data from the encoder to the display device at optional stage 2244 (similar to stage 2144 as explained in connection with Figure 21 ). As Figure 22 shown, method 2200 then includes: at step 2246, the display device displays the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns. In some embodiments, the display method may be similar to the display step 2146 in connection with Figure 21 discussed. As Figure 22 shown, method 2200 then includes: at step 2248, obtaining the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns from the display device. In some embodiments, the obtaining method may be similar to the obtaining step 2148 in connection with Figure 21 discussed. In some embodiments, there may be two or more obtaining devices to obtain 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.

[0191] Method 2200 may include transmitting the first set of data and the second set of data from the obtaining device to the decoder at optional stage 2250 (similar to stage 2150 as explained in connection with Figure 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.

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

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

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

[0195] In Figure 23 the flowchart shown, the set of encoded spatio-temporal patterns output at stage 2346 is then captured by a sending node acquisition device at stage 2356 and by a receiving node acquisition device at stage 2348. One possible benefit of allowing the sending node to capture the data transmission is that it can verify that the data is correctly output and does not conflict with other transmissions without the receiving node notifying the sending node of an error in the data transfer. Another possible benefit of allowing the sending node to capture the data transmission is that it enables 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 at stage 2358. For example, the sending node acquisition device 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. Once the sending node decodes the set of encoded spatio-temporal patterns, if the data is correctly output, it can take no action, or if the data is not correctly output, it can retransmit the data to the encoder at stage 2362.

[0196] The following are the sections according to embodiments of the present disclosure:

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

[0198] obtaining data to be encoded;

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

[0200] outputting the set of encoded spatio-temporal patterns.

[0201] A2. The method according to section A1, wherein the data is obtained from a first sending node.

[0202] A3. The method according to section 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 according to any one of Sections A1 - A3, wherein the data includes a first set of data and a second set of data.

[0204] A5. The method according to Section A4, wherein the first set of data and the second set of data are obtained from a first sending node.

[0205] A6. The method according to any one of Section A4 or Section A5, wherein the first set of data is obtained from a first sending node, and the second set of data is obtained from a second sending node.

[0206] A7. The method according to any one of Sections A1 - A6, wherein the data is non - serialized data.

[0207] A8. The method according to any one of Sections A1 - A7, wherein encoding the data into the set of encoded spatio - temporal patterns includes encoding the data into code symbols.

[0208] A9. The method according to Section A8, wherein the code symbols are organized into encoded spatio - temporal patterns.

[0209] A10. The method according to any one of Section A8 or Section A9, wherein encoding the data into code symbols further includes encoding the data into a bitstream and encoding the bitstream into code symbols.

[0210] A11. The method according to Section A8, wherein the first code symbol includes a first intensity level, and the second code symbol includes a second intensity level.

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

[0212] A13. The method according to Section A12, wherein the header information indicates the intended recipient of the data.

[0213] A14. The method according to Section A12, wherein the header information indicates the priority of the data.

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

[0215] A16. The method according to any one of Sections A1 - A15, wherein at least two of at least three colors are used to encode the data.

[0216] A17. The method according to any one of Sections A1 - A10 and Sections A15 - A16, wherein at least one of at least three colors is used to provide header information.

[0217] A18. The method according to section A17, wherein the header information indicates the intended recipient of the data.

[0218] A19. The method according to any one of sections A17 or A18, wherein the header information indicates the priority of the data.

[0219] A20. The method according to any one of sections A1 - A19, wherein the set of encoded spatio - temporal patterns includes one or more of visible light and near - visible light.

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

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

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

[0223] A24. The method according to any one of sections A1 - A23, 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.

[0224] A25. The method according to section 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 according to any one of sections A24 or A25, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority of the data.

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

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

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

[0229] A30. The method according to section A29, wherein displaying the set of encoded spatio - temporal patterns of the output includes displaying onto a screen via a projector.

[0230] A31. The method according to any one of Sections A29 or A30, wherein the set of encoded spatio-temporal patterns for displaying the output includes being displayed through at least one of a computer screen and a TV monitor.

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

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

[0233] A34. The method according to Section A33, wherein two or more sets of encoded spatio-temporal patterns at least partially overlap.

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

[0235] spatially and temporally obtaining a set of encoded spatio-temporal patterns including at least three colors;

[0236] decoding the set of encoded spatio-temporal patterns into decoded data; and

[0237] storing the decoded data.

[0238] B2. The method according to Section B1, wherein spatially and temporally obtaining the set of encoded spatio-temporal patterns includes obtaining from at least one of a display and a projector screen.

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

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

[0241] B5. The method according to Section 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 according to any one of Sections B1 - B5, wherein spatially and temporally obtaining the set of encoded spatio-temporal patterns includes obtaining through a first camera and a second camera.

[0243] B7. The method according to any one of Section 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 according to any one of Sections B1 - B7, wherein the decoded data is non - serialized data in matrix form.

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

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

[0247] B11. The method according to Section 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 according to any one of Sections B1 - B11, wherein the set of encoded spatio - temporal patterns includes colors producible by visible light.

[0249] B13. The method according to any one of Sections B1 - B12, wherein at least two of the at least three colors are used to decode data.

[0250] B14. The method according to any one of Sections B1 - B12, wherein at least one of the at least three colors is used to provide header information.

[0251] B15. The method according to Section B14, wherein the header information indicates the intended recipient of the data.

[0252] B16. The method according to Section B14, wherein the header information indicates the priority of the data.

[0253] B17. The method according to any one of Sections B9 - B11, wherein at least one code symbol includes an intensity level different from another code symbol.

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

[0255] B19. The method according to Section B18, wherein the header information indicates the intended recipient of the data.

[0256] B20. The method according to Section B18, wherein the header information indicates the priority of the data.

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

[0258] B22. The method according to section B21, wherein the near visible light is one or more of UV light and IR light.

[0259] B23. The method according to any one of sections B21 or B22, wherein the near visible light indicates the intended recipient of the data.

[0260] B24. The method according to any one of sections B21 or B22, wherein the near visible light indicates the priority of the data.

[0261] B25. The method according to any one of sections B1 - 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] B26. The method according to section B25, 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.

[0263] B27. The method according to section B25, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority of the data.

[0264] B28. The method according to any one of sections B1 - B27, wherein the set of encoded spatio - temporal patterns moves in space relative to time.

[0265] B29. The method according to section B28, wherein the set of encoded spatio - temporal patterns moves in a predetermined pattern.

[0266] B30. The method according to any one of sections B1 - 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 a set of encoded spatio - temporal patterns including at least three colors;

[0269] Displaying the set of encoded spatio - temporal patterns;

[0270] Obtaining the set of encoded spatio - temporal patterns spatio - temporally; and

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

[0272] C2. The method according to section C1, further comprising obtaining the data from a first sending node. C3. The method according to section C2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0273] C4. The method according to any one of Sections C1 - C3, wherein the data includes a first set of data and a second set of data.

[0274] C5. The method according to Section C4, wherein the first set of data and the second set of data are obtained from a first sending node.

[0275] C6. The method according to any one of Sections C4 or C5, wherein the first set of data is further obtained from a first sending node, and the second set of data is obtained from a second sending node.

[0276] C7. The method according to any one of Sections C1 - C6, wherein the data is non - serialized data.

[0277] C8. The method according to any one of Sections C1 - C7, wherein encoding the data into the set of encoded spatio - temporal patterns includes encoding the data into code symbols.

[0278] C9. The method according to Section C8, wherein the code symbols are organized into the set of encoded spatio - temporal patterns.

[0279] C10. The method according to any one of Sections C8 or C9, wherein encoding the data into code symbols further includes encoding the data into a bitstream, and encoding the bitstream into code symbols.

[0280] C11. The method according to any one of Sections C1 - C10, wherein the set of encoded spatio - temporal patterns includes colors that can be produced by visible light.

[0281] C12. The method according to any one of Sections C1 - C11, wherein at least two of at least three colors are used to encode the data.

[0282] C13. The method according to any one of Sections C1 - C12, wherein at least one of at least three colors is used to provide header information.

[0283] C14. The method according to Section C13, wherein the header information indicates the intended recipient of the data.

[0284] C15. The method according to Section C13, wherein the header information indicates the priority of the data.

[0285] C16. The method according to any one of Sections C8 - C10, wherein at least one code symbol includes an intensity level different from another code symbol.

[0286] C17. The method according to Section C16, wherein at least one intensity level is used to provide header information.

[0287] C18. The method according to section C17, wherein the header information indicates the intended recipient of the data.

[0288] C19. The method according to section C17, wherein the header information indicates the priority of the data.

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

[0290] C21. The method according to section C20, wherein the near - visible light is one or more of UV light and IR light.

[0291] C22. The method according to any one of sections C20 or C21, wherein the near - visible light indicates the intended recipient of the data.

[0292] C23. The method according to any one of sections C20 or C21, wherein the near - visible light indicates the priority of the data.

[0293] C24. The method according to any one of sections C1 - 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.

[0294] C25. The method according to section C24, 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.

[0295] C26. The method according to any one of sections C24 or C25, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority of the data.

[0296] C27. The method according to any one of sections C1 - C26, wherein the set of encoded spatio - temporal patterns in the set of encoded spatio - temporal patterns moves in space with respect to time.

[0297] C28. The method according to section C27, wherein the set of encoded spatio - temporal patterns in the set of encoded spatio - temporal patterns moves in a predetermined pattern.

[0298] C29. The method according to any one of sections C1 - C28, wherein displaying the set of encoded spatio - temporal patterns includes displaying onto a screen via a projector.

[0299] C30. The method according to any one of sections C1 - C28, wherein displaying the set of encoded spatio - temporal patterns includes displaying via at least one of a computer screen and a TV monitor.

[0300] C31. The method according to any one of Sections C1 - C30, wherein displaying the set of encoded spatio - temporal patterns includes displaying on two or more displays.

[0301] C32. The method according to any one of Sections C1 - C31, wherein displaying the set of encoded spatio - temporal patterns includes displaying two or more sets of encoded spatio - temporal patterns.

[0302] C33. The method according to Section C32, wherein two or more sets of encoded spatio - temporal patterns at least partially overlap.

[0303] C34. The method according to any one of Sections C1 - C33, 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.

[0304] C35. The method according to Section 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.

[0305] C36. The method according to any one of Sections C1 - C35, wherein obtaining the set of encoded spatio - temporal patterns spatio - temporally includes obtaining by a first camera and a second camera.

[0306] C37. The method according to Section C36, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near - visible light.

[0307] C38. The method according to any one of Sections C8 - C10, wherein decoding the set of encoded spatio - temporal patterns into data includes decoding code symbols into data.

[0308] C39. The method according to Section C38, wherein decoding the code symbols into data further includes decoding the code symbols into a bit stream and decoding the bit stream into data.

[0309] C40. The method according to any one of Sections C1 - C39, further comprising storing the decoded data in a storage device.

[0310] C41. The method according to Section C2, wherein the first sending node is configured to obtain the set of encoded spatio - temporal patterns.

[0311] C42. The method according to Section C41, further comprising: the first sending node is configured to verify that the data is correctly output according to the obtained set of encoded spatio - temporal patterns.

[0312] C43. The method according to Section C42, wherein the first sending node is configured to: if the data is not correctly output, re - send the data.

[0313] D1. A method for encoding data in a data center, comprising:

[0314] Obtaining data to be encoded;

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

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

[0317] D2. The method according to section D1, wherein the data is obtained from a first sending node.

[0318] D3. The method according to section D2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0319] D4. The method according to any one of sections D1-D3, wherein the data includes a first set of data and a second set of data.

[0320] D5. The method according to section D4, wherein the first set of data and the second set of data are obtained from the first sending node.

[0321] D6. The method according to section D4, wherein the first set of data is obtained from the first sending node, and the second set of data is obtained from a second sending node.

[0322] D7. The method according to any one of sections D1-D6, wherein the data is non-serialized data.

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

[0324] D9. The method according to section D8, wherein the code symbols are organized into encoded spatio-temporal patterns.

[0325] D10. The method according to any one of sections D8 or D9, wherein encoding the data into code symbols further includes encoding the data into a bit stream and encoding the bit stream into code symbols.

[0326] D11. The method according to any one of sections D1-D10, wherein the set of encoded spatio-temporal patterns includes at least one color producible by visible light.

[0327] D12. The method according to any one of sections D1-D10, wherein the set of encoded spatio-temporal patterns includes at least two colors producible by visible light.

[0328] D13. The method according to any one of Sections D1 - D12, wherein a first intensity level and a second intensity level are used to encode data.

[0329] D14. The method according to Section D12, wherein at least two colors are used to encode data.

[0330] D15. The method according to any one of Sections D1 - D12, wherein at least one intensity level is used to provide header information.

[0331] D16. The method according to Section D11, wherein at least one color is used to provide header information.

[0332] D17. The method according to any one of Sections D15 or D16, wherein the header information indicates the intended recipient of the data.

[0333] D18. The method according to any one of Sections D15 or D16, wherein the header information indicates the priority of the data.

[0334] D19. The method according to any one of Sections D1 - D18, wherein the set of encoded spatio - temporal patterns further includes near - visible light.

[0335] D20. The method according to Section D19, wherein the near - visible light is one or more of UV light and IR light.

[0336] D21. The method according to any one of Sections D19 - D20, wherein the near - visible light indicates the intended recipient of the data.

[0337] D22. The method according to any one of Sections D19 - D20, wherein the near - visible light indicates the priority of the data.

[0338] D23. The method according to any one of Sections D1 - 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.

[0339] D24. The method according to any one of Sections D23, 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.

[0340] D25. The method according to any one of Sections D23 - D24, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority of the data.

[0341] D26. The method according to any one of Sections D1 - D25, wherein the set of encoded spatio - temporal patterns in the set of encoded spatio - temporal patterns moves in space relative to time.

[0342] D27. The method according to section D26, wherein the set of encoded spatio-temporal patterns in the set of encoded spatio-temporal patterns moves in a predetermined pattern.

[0343] D28. The method according to any one of sections D1 - D27, wherein outputting the set of encoded spatio-temporal patterns further includes displaying the output set of encoded spatio-temporal patterns.

[0344] D29. The method according to section D28, wherein displaying the output set of encoded spatio-temporal patterns includes displaying on a screen via a projector.

[0345] D30. The method according to any one of sections D28 or D29, wherein displaying the output set of encoded spatio-temporal patterns includes displaying via at least one of a computer screen and a TV monitor.

[0346] D31. The method according to any one of sections D28 - D30, wherein displaying the output set of encoded spatio-temporal patterns includes displaying on two or more displays.

[0347] D32. The method according to any one of sections D28 - D31, wherein displaying the output set of encoded spatio-temporal patterns includes displaying two or more sets of encoded spatio-temporal patterns.

[0348] D33. The method according to section D32, wherein two or more sets of encoded spatio-temporal patterns at least partially overlap.

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

[0350] Spatio-temporally obtaining a set of encoded spatio-temporal patterns including a first intensity level and a second intensity level;

[0351] Decoding the set of encoded spatio-temporal patterns into decoded data; and

[0352] Storing the decoded data.

[0353] E2. The method according to section E1, wherein spatio-temporally obtaining a set of encoded spatio-temporal patterns includes obtaining from at least one of a display and a projector screen.

[0354] E3. The method according to section E2, wherein the display is at least one of a computer screen and a TV monitor.

[0355] E4. The method according to any one of sections E1 - E3, wherein spatio-temporally obtaining a set of encoded spatio-temporal patterns includes obtaining via at least one of a camera, a video camera, and an image sensor.

[0356] E5. The method according to section E4, wherein at least one of a camera, a video camera, and an image sensor is capable of capturing visible light and near-visible light.

[0357] E6. The method according to any one of sections E1 - E5, wherein obtaining a set of encoded spatio-temporal patterns spatio-temporally includes obtaining by a first camera and a second camera.

[0358] E7. The method according to section E6, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0359] E8. The method according to any one of sections E1 - E7, wherein the decoded data is unsequenced data in matrix form.

[0360] E9. The method according to any one of sections E1 - E8, wherein the set of encoded spatio-temporal patterns includes code symbols.

[0361] E10. The method according to section E9, wherein decoding the set of encoded spatio-temporal patterns into decoded data includes decoding the code symbols into data.

[0362] E11. The method according to section E10, wherein decoding the code symbols into data further includes decoding the code symbols into a bit stream, and decoding the bit stream into data.

[0363] E12. The method according to any one of sections E1 - E11, wherein the set of encoded spatio-temporal patterns includes colors that can be produced by visible light.

[0364] E13. The method according to section E12, wherein at least two colors are used to decode the data.

[0365] E14. The method according to any one of sections E1 - E13, wherein a first intensity level and a second intensity level are used to decode the data.

[0366] E15. The method according to any one of sections E12 - E14, wherein at least one color is used to provide header information.

[0367] E16. The method according to section E15, wherein the header information indicates the intended recipient of the data.

[0368] E17. The method according to section E15, wherein the header information indicates the priority of the data.

[0369] E18. The method according to any one of sections E1 - E17, wherein at least one intensity level is used to provide header information.

[0370] E19. The method according to section E18, wherein the header information indicates the intended recipient of the data.

[0371] E20. The method according to section E18, wherein the header information indicates the priority of the data.

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

[0373] E22. The method according to section E21, wherein the near - visible light is one or more of UV light and IR light.

[0374] E23. The method according to any one of sections E21 or E22, wherein the near - visible light indicates the intended recipient of the data.

[0375] E24. The method according to any one of sections E21 or E22, wherein the near - visible light indicates the priority of the data.

[0376] E25. The method according to any one of sections E1 - 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.

[0377] E26. The method according to section E25, 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.

[0378] E27. The method according to any one of sections E25 or E26, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority of the data.

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

[0380] E29. The method according to section E28, wherein the set of encoded spatio - temporal patterns in the set of encoded spatio - temporal patterns moves in a predetermined pattern.

[0381] E30. The method according to any one of sections E1 - E29, wherein storing the decoded data includes storing it to a storage device.

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

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

[0384] Displaying the set of encoded spatio - temporal patterns;

[0385] spatially and temporally obtain the set of encoded spatio-temporal patterns; and

[0386] decode the set of encoded spatio-temporal patterns into data.

[0387] F2. The method according to section F1 further includes obtaining data from a first sending node.

[0388] F3. The method according to section F2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0389] F4. The method according to any one of sections F1 - F3, wherein the data includes a first set of data and a second set of data.

[0390] F5. The method according to section F4, wherein the first set of data and the second set of data are obtained from the first sending node.

[0391] F6. The method according to any one of sections F4 or F5, wherein the first set of data is further obtained from the first sending node, and the second set of data is obtained from a second sending node.

[0392] F7. The method according to any one of sections F1 - F6, wherein the data is non-serialized data.

[0393] F8. The method according to any one of sections F1 - F7, wherein encoding the data into the set of encoded spatio-temporal patterns includes encoding the data into code symbols.

[0394] F9. The method according to section F8, wherein the code symbols are organized into encoded spatio-temporal patterns.

[0395] F10. The method according to any one of sections F8 or F9, wherein encoding the data into code symbols further includes encoding the data into a bitstream, and encoding the bitstream into code symbols.

[0396] F11. The method according to any one of sections F1 - F10, wherein the set of encoded spatio-temporal patterns includes at least one color that can be produced by visible light.

[0397] F12. The method according to any one of sections F1 - F11, wherein the set of encoded spatio-temporal patterns includes at least two colors that can be produced by visible light.

[0398] F13. The method according to any one of section F12, wherein at least two colors are used to encode the data.

[0399] F14. The method according to any one of sections F1 - F13, wherein a first intensity level and a second intensity level are used to encode the data.

[0400] F15. According to the method described in section F12, wherein at least one color is used to provide header information.

[0401] F16. According to the method described in section F15, wherein the header information indicates the intended recipient of the data.

[0402] F17. According to the method described in section F15, wherein the header information indicates the priority of the data.

[0403] F18. According to the method described in any one of sections F1 - F14, wherein at least one intensity level is used to provide header information.

[0404] F19. According to the method described in section F18, wherein the header information indicates the intended recipient of the data.

[0405] F20. According to the method described in section F18, wherein the header information indicates the priority of the data.

[0406] F21. According to the method described in any one of sections F1 - F20, wherein the set of encoded spatio - temporal patterns includes one or more of visible light and near - visible light.

[0407] F22. According to the method described in section F21, wherein the near - visible light is one or more of UV light and IR light.

[0408] F23. According to the method described in any one of sections F21 or F22, wherein the near - visible light indicates the intended recipient of the data.

[0409] F24. According to the method described in any one of sections F21 or F22, wherein the near - visible light indicates the priority of the data.

[0410] F25. According to the method described in any one of sections F1 - F24, 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.

[0411] F26. According to the method described in section F25, 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.

[0412] F27. According to the method described in section F25, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority of the data.

[0413] F28. According to the method described in any one of sections F1 - F27, wherein the set of encoded spatio - temporal patterns in the set of encoded spatio - temporal patterns moves in space relative to time.

[0414] F29. The method according to section F28, wherein the set of encoded spatio-temporal patterns in the set of encoded spatio-temporal patterns moves in a predetermined pattern.

[0415] F30. The method according to any one of sections F1 - F29, wherein displaying the set of encoded spatio-temporal patterns includes displaying onto a screen via a projector.

[0416] F31. The method according to any one of sections F1 - F29, wherein displaying the set of encoded spatio-temporal patterns includes displaying via at least one of a computer screen and a TV monitor.

[0417] F32. The method according to any one of sections F1 - F31, wherein displaying the set of encoded spatio-temporal patterns includes displaying on two or more displays.

[0418] F33. The method according to any one of sections F1 - F32, wherein displaying the set of encoded spatio-temporal patterns includes displaying two or more sets of encoded spatio-temporal patterns.

[0419] F34. The method according to any one of sections F33, wherein two or more sets of encoded spatio-temporal patterns at least partially overlap.

[0420] F35. The method according to any one of sections F1 - F34, wherein spatio-temporally obtaining the set of encoded spatio-temporal patterns includes obtaining via at least one of a camera, a video camera, and an image sensor.

[0421] F36. The method according to section 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.

[0422] F37. The method according to any one of sections F1 - F36, wherein spatio-temporally obtaining the set of encoded spatio-temporal patterns includes obtaining via a first camera and a second camera.

[0423] F38. The method according to section F37, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0424] F39. The method according to any one of sections F8 - F10, wherein decoding the set of encoded spatio-temporal patterns into data includes decoding code symbols into data.

[0425] F40. The method according to any one of sections F39, wherein decoding the code symbols into data further includes decoding the code symbols into a bit stream, and decoding the bit stream into data.

[0426] F41. The method according to any one of sections F1 - F40, further comprising storing the data into a storage device.

[0427] F42. The method according to section F2, wherein the first sending node is configured to obtain the displayed set of encoded spatio-temporal patterns.

[0428] F43. The method according to section F42, further comprising the first sending node verifying that the data is correctly output according to the obtained displayed set of encoded spatio-temporal patterns.

[0429] F44. The method according to section F43, wherein the first sending node is configured to: if the data is not correctly output, retransmit the data.

[0430] G1. A method for encoding data in a data center, comprising:

[0431] obtaining the data to be encoded;

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

[0433] outputting the set of encoded spatio-temporal patterns.

[0434] G2. The method according to section G1, wherein the data is obtained from a first sending node.

[0435] G3. The method according to section G2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0436] G4. The method according to any one of sections G1 - G3, wherein the data includes a first set of data and a second set of data.

[0437] G5. The method according to section G4, wherein the first set of data and the second set of data are obtained from a first sending node.

[0438] G6. The method according to section G4, wherein the first set of data is obtained from a first sending node, and the second set of data is obtained from a second sending node.

[0439] G7. The method according to any one of sections G1 - G6, wherein the data is non-serialized data.

[0440] G8. The method according to any one of sections G1 - G7, wherein encoding the data into the set of encoded spatio-temporal patterns includes encoding the data into code symbols.

[0441] G9. The method according to section G8, wherein the code symbols are organized into encoded spatio-temporal patterns.

[0442] G10. The method according to any one of Sections G8 or G9, wherein encoding the data into code symbols further comprises encoding the data into a bitstream and encoding the bitstream into code symbols.

[0443] G11. The method according to any one of Sections G1 - G10, wherein the set of encoded spatio - temporal patterns includes at least two colors.

[0444] G12. The method according to Section G11, wherein at least two colors are used to encode the data.

[0445] G13. The method according to Section G11, wherein at least one of the at least two colors is used to provide header information.

[0446] G14. The method according to Section G13, wherein the header information indicates the intended recipient of the data.

[0447] G15. The method according to Section G13, wherein the header information indicates the priority of the data.

[0448] G16. The method according to Section G8, wherein at least one code symbol includes an intensity level different from another code symbol.

[0449] G17. The method according to Section G16, wherein at least one intensity level is used to provide header information.

[0450] G18. The method according to Section G17, wherein the header information indicates the intended recipient of the data.

[0451] G19. The method according to Section G17, wherein the header information indicates the priority of the data.

[0452] G20. The method according to any one of Sections G1 - G19, wherein the near - visible light is one or more of UV light and IR light.

[0453] G21. The method according to any one of Sections G1 - G20, wherein the near - visible light indicates the intended recipient of the data.

[0454] G22. The method according to any one of Sections G1 - G20, wherein the near - visible light indicates the priority of the data.

[0455] G23. The method according to any one of Sections G1 - 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.

[0456] G24. The method according to section G23, wherein at least one of a shape factor, a position factor, a size factor, and a timing factor indicates an intended recipient of the data.

[0457] G25. The method according to any one of sections G23 or G24, wherein at least one of a shape factor, a position factor, and a size factor indicates a priority of the data.

[0458] G26. The method according to any one of sections G1 - G25, wherein the set of encoded spatio - temporal patterns in the set of encoded spatio - temporal patterns moves in space relative to time.

[0459] G27. The method according to section G26, wherein the set of encoded spatio - temporal patterns in the set of encoded spatio - temporal patterns moves in a predetermined pattern.

[0460] G28. The method according to any one of sections G1 - G27, wherein outputting the set of encoded spatio - temporal patterns further comprises displaying the set of encoded spatio - temporal patterns.

[0461] G29. The method according to section G28, wherein displaying the set of encoded spatio - temporal patterns comprises displaying onto a screen via a projector.

[0462] G30. The method according to section G28, wherein displaying the set of encoded spatio - temporal patterns comprises displaying via at least one of a computer screen and a TV monitor.

[0463] G31. The method according to any one of sections G28 or G30, wherein displaying the set of encoded spatio - temporal patterns comprises displaying on two or more displays.

[0464] G32. The method according to any one of sections G28 - G31, wherein displaying the set of encoded spatio - temporal patterns comprises displaying two or more sets of encoded spatio - temporal patterns.

[0465] G33. The method according to section G32, wherein two or more sets of encoded spatio - temporal patterns at least partially overlap.

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

[0467] spatially and temporally obtaining a set of encoded spatio - temporal patterns including visible light and near - visible light;

[0468] decoding the set of encoded spatio - temporal patterns into decoded data; and

[0469] storing the decoded data.

[0470] H2. The method according to section H1, wherein spatially and temporally obtaining the set of encoded spatio - temporal patterns comprises obtaining from at least one of a display and a projector screen.

[0471] H3. The method according to section H2, wherein the display is at least one of a computer screen and a TV monitor.

[0472] H4. The method according to any one of sections H1 - H3, wherein obtaining the set of encoded spatio - temporal patterns spatio - temporally includes obtaining through at least one of a camera, a video camera, and an image sensor.

[0473] H5. The method according to section 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.

[0474] H6. The method according to any one of sections H1 - H5, wherein obtaining the set of encoded spatio - temporal patterns spatio - temporally includes obtaining through a first camera and a second camera.

[0475] H7. The method according to section H6, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near - visible light.

[0476] H8. The method according to any one of sections H1 - H7, wherein the decoded data is non - serialized data in matrix form.

[0477] H9. The method according to any one of sections H1 - H8, wherein the set of encoded spatio - temporal patterns includes code symbols.

[0478] H10. The method according to section H9, wherein decoding the set of encoded spatio - temporal patterns into decoded data includes decoding the code symbols into data.

[0479] H11. The method according to section H10, wherein decoding the code symbols into data further includes decoding the code symbols into a bitstream and decoding the bitstream into data.

[0480] H12. The method according to any one of sections H1 - H11, wherein the set of encoded spatio - temporal patterns includes at least two colors.

[0481] H13. The method according to section H12, wherein at least two colors are used to decode the data.

[0482] H14. The method according to any one of sections H12 or H13, wherein at least one of the at least two colors is used to provide header information.

[0483] H15. The method according to section H14, wherein the header information indicates the intended recipient of the data.

[0484] H16. The method according to section H14, wherein the header information indicates the priority of the data.

[0485] H17. A method according to any one of Sections H9 - H11, wherein at least one code symbol includes an intensity level different from that of another code symbol.

[0486] H18. A method according to Section H17, wherein at least one intensity level is used to provide header information.

[0487] H19. A method according to Section H18, wherein the header information indicates the intended recipient of the data.

[0488] H20. A method according to Section H18, wherein the header information indicates the priority of the data.

[0489] H21. A method according to any one of Sections H1 - H20, wherein the near - visible light is one or more of UV light and IR light.

[0490] H22. A method according to any one of Sections H1 - H21, wherein the near - visible light indicates the intended recipient of the data.

[0491] H23. A method according to any one of Sections H1 - H21, wherein the near - visible light indicates the priority of the data.

[0492] H24. A method according to any one of Sections H1 - H23, 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.

[0493] H25. A method according to Section H24, 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.

[0494] H26. A method according to Section H24, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority of the data.

[0495] H27. A method according to any one of Sections H1 - H26, wherein the set of encoded spatio - temporal patterns in the set of encoded spatio - temporal patterns moves in space relative to time.

[0496] H28. A method according to Section H27, wherein the set of encoded spatio - temporal patterns in the set of encoded spatio - temporal patterns moves in a predetermined pattern.

[0497] H29. A method according to any one of Sections H1 - H28, wherein storing the decoded data includes storing it to a storage device.

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

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

[0500] Displaying the set of encoded spatio - temporal patterns;

[0501] Obtaining the set of encoded spatio - temporal patterns spatio - temporally; and

[0502] Decoding the set of encoded spatio - temporal patterns into data.

[0503] I2. The method according to section I1 further includes obtaining data from a first sending node.

[0504] I3. The method according to section I2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0505] I4. The method according to any one of sections I1 - I3, wherein the data includes a first set of data and a second set of data.

[0506] I5. The method according to section I4, wherein the first set of data and the second set of data are obtained from the first sending node.

[0507] I6. The method according to any one of sections I4 or I5, wherein the first set of data is further obtained from the first sending node, and the second set of data is obtained from a second sending node.

[0508] I7. The method according to any one of sections I1 - I6, wherein the data is non - serialized data.

[0509] I8. The method according to any one of sections I1 - I7, wherein encoding the data into the set of encoded spatio - temporal patterns includes encoding the data into code symbols.

[0510] I9. The method according to section I8, wherein the code symbols are organized into encoded spatio - temporal patterns.

[0511] I10. The method according to any one of sections I8 or I9, wherein encoding the data into code symbols further includes encoding the data into a bitstream and encoding the bitstream into code symbols.

[0512] I11. The method according to any one of sections I1 - I10, wherein the set of encoded spatio - temporal patterns includes at least two colors.

[0513] I12. The method according to section I11, wherein at least two colors are used to encode the data.

[0514] I13. The method according to section I11, wherein at least one of the at least two colors is used to provide header information.

[0515] I14. The method according to section I13, wherein the header information indicates the intended recipient of the data.

[0516] I15. The method according to section I13, wherein the header information indicates the priority of the data.

[0517] I16. The method according to any one of sections I8 - I10, wherein at least one code symbol includes an intensity level different from that of another code symbol.

[0518] I17. The method according to any one of sections I1 - I16, wherein at least one intensity level is used to provide the header information.

[0519] I18. The method according to section I17, wherein the header information indicates the intended recipient of the data.

[0520] I19. The method according to section I17, wherein the header information indicates the priority of the data.

[0521] I20. The method according to any one of sections I1 - I19, wherein the near - visible light is one or more of UV light and IR light.

[0522] I21. The method according to any one of sections I1 - I20, wherein the near - visible light indicates the intended recipient of the data.

[0523] I22. The method according to any one of sections I1 - I20, wherein the near - visible light indicates the priority of the data.

[0524] I23. The method according to any one of sections I1 - 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.

[0525] I24. The method according to section 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.

[0526] I25. The method according to any one of sections I23 or I24, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority of the data.

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

[0528] I27. The method according to section I26, wherein the set of encoded spatio - temporal patterns in the set of encoded spatio - temporal patterns moves in a predetermined pattern.

[0529] I28. The method according to any one of Sections I1 - I27, wherein displaying the set of encoded spatio - temporal patterns includes displaying onto a screen via a projector.

[0530] I29. The method according to any one of Sections I1 - I28, wherein displaying the set of encoded spatio - temporal patterns includes displaying via at least one of a computer screen and a TV monitor.

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

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

[0533] I32. The method according to Section I31, wherein two or more sets of encoded spatio - temporal patterns at least partially overlap.

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

[0535] I34. The method according to Section I33, wherein at least one of the camera, the video camera, and the image sensor is capable of capturing visible light and near - visible light.

[0536] I35. The method according to any one of Sections I1 - I34, wherein obtaining the set of encoded spatio - temporal patterns spatio - temporally includes obtaining via a first camera and a second camera.

[0537] I36. The method according to Section I35, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near - visible light.

[0538] I37. The method according to any one of Sections I8 - I10, wherein decoding the set of encoded spatio - temporal patterns into data includes decoding code symbols into data.

[0539] I38. The method according to Section I37, wherein decoding the code symbols into data further includes decoding the code symbols into a bitstream, and decoding the bitstream into data.

[0540] I39. The method according to any one of Sections I1 - I38, further comprising storing the decoded data in a storage device.

[0541] I40. The method according to Section I2, wherein the first sending node is configured to obtain the set of encoded spatio - temporal patterns.

[0542] I41. According to the method described in section I40, it further includes that the first sending node verifies that the data is correctly displayed according to the obtained set of encoded spatio-temporal patterns.

[0543] I42. According to the method described in section I41, wherein the first sending node is configured to: re-send the data if the data is not correctly displayed.

[0544] J1. A method for encoding data in a data center, including:

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

[0546] Encoding the first set of data and the second set of data into a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns; and

[0547] Outputting the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns.

[0548] J2. According to the method described in section J1, wherein the first set of data and the second set of data are obtained from a first sending node.

[0549] J3. According to the method described in section J2, wherein the first sending node includes at least one of a server, an application, a storage device, and a memory.

[0550] J4. According to the method described in any one of sections J1-J3, wherein the first set of data is obtained from a first sending node, and the second set of data is obtained from a second sending node.

[0551] J5. According to the method described in any one of sections J1-J4, wherein at least one of the first set of data and the second set of data is non-serialized data.

[0552] J6. According to the method described in any one of sections J1-J5, wherein encoding the first set of data and the second set of data into a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns includes encoding the first set of data and the second set of data into code symbols.

[0553] J7. According to the method described in section 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.

[0554] J8. According to the method described in either section J6 or J7, wherein encoding the first set of data and the second set of data into code symbols further includes encoding the first set of data and the second set of data into a bitstream, and encoding the bitstream into code symbols.

[0555] J9. The method according to any one of Sections J1-J8, wherein the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns include at least two colors producible by visible light.

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

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

[0558] J12. The method according to Section J11, wherein the header information indicates the intended recipient of the data.

[0559] J13. The method according to Section J11, wherein the header information indicates the priority of the data.

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

[0561] J15. The method according to Section J14, wherein at least one intensity level is used to provide header information.

[0562] J16. The method according to Section J15, wherein the header information indicates the intended recipient of the data.

[0563] J17. The method according to Section J15, wherein the header information indicates the priority of the data.

[0564] J18. The method according to any one of Sections J1-J17, wherein at least one of the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns includes near-visible light.

[0565] J19. The method according to Section J18, wherein the near-visible light is one or more of UV light and IR light.

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

[0567] J21. The method according to any one of Sections J18 or J19, wherein the near-visible light indicates the priority of the data.

[0568] J22. The method according to any one of Sections J1-J21, wherein at least one of the first set of encoded spatio-temporal patterns and the second 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.

[0569] J23. A method according to the method described in section J22, wherein at least one of the shape factor, position factor, size factor, and timing factor indicates the intended recipient of the data.

[0570] J24. A method according to any one of sections J22 or J23, wherein at least one of the shape factor, position factor, and size factor indicates the priority of the data.

[0571] J25. A method according to any one of sections J1 - J24, wherein at least one of the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns moves in space relative to time.

[0572] J26. A method according to the method described in section J25, wherein at least one of the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns moves in a predetermined pattern.

[0573] J27. A method according to any one of sections J1 - J26, wherein outputting the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns further includes outputting on a display.

[0574] J28. A method according to any one of sections J1 - J26, wherein outputting the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns further includes outputting on a screen via a projector.

[0575] J29. A method according to the method described in section J27, wherein the display is at least one of a computer screen and a TV monitor.

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

[0577] J31. A method according to the method described in section J30, wherein displaying on two or more displays further includes displaying the first set of encoded spatio - temporal patterns on a first display and displaying the second set of encoded spatio - temporal patterns on a second display.

[0578] J32. A method according to any one of sections J1 - J31, wherein the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns at least partially overlap.

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

[0580] Obtaining spatio - temporally a first set of encoded spatio - temporal patterns and a second set of encoded spatio - temporal patterns;

[0581] Decoding the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns into a first set of decoded data and a second set of decoded data; and

[0582] Store the first set of decoded data and the second set of decoded data.

[0583] K2. The method according to section K1, wherein obtaining the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns spatio-temporally includes obtaining from at least one of a display and a projector screen.

[0584] K3. The method according to section K2, wherein the display is at least one of a computer screen and a TV monitor.

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

[0586] K5. The method according to section 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.

[0587] K6. The method according to any one of sections K1-K5, wherein obtaining the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns spatio-temporally includes obtaining through a first camera and a second camera.

[0588] K7. The method according to section K6, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near-visible light.

[0589] K8. The method according to any one of sections K1-K7, wherein the first set of decoded data and the second set of decoded data are unsequenced data in matrix form.

[0590] K9. The method according to any one of sections K1-K8, wherein the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns include code symbols.

[0591] K10. The method according to section K9, wherein decoding the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns into the first set of decoded data and the second set of decoded data includes decoding the code symbols into data.

[0592] K11. The method according to section 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.

[0593] K12. The method according to any one of sections K1-K11, 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.

[0594] K13. The method according to section K12, wherein at least two colors are used to decode data.

[0595] K14. The method according to section K12, wherein at least one color is used to provide header information.

[0596] K15. The method according to section K14, wherein the header information indicates the intended recipient of the data.

[0597] K16. The method according to section K14, wherein the header information indicates the priority of the data.

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

[0599] K18. The method according to section K17, wherein at least one intensity level is used to provide header information.

[0600] K19. The method according to section K18, wherein the header information indicates the intended recipient of the data.

[0601] K20. The method according to section K18, wherein the header information indicates the priority of the data.

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

[0603] K22. The method according to section K21, wherein the near - visible light is one or more of UV light and IR light.

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

[0605] K24. The method according to any one of sections K21 or K22, wherein the near - visible light indicates the priority of the data.

[0606] K25. The method according to any one of sections K1 - K24, wherein at least one of the first set of encoded spatio - temporal patterns and the second 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.

[0607] K26. The method according to section K25, 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.

[0608] K27. The method according to section K25, wherein at least one of a shape factor, a position factor, and a size factor indicates the priority of data.

[0609] K28. The method according to any one of sections K1 - K27, wherein at least one of a first set of encoded spatio - temporal patterns and a second set of encoded spatio - temporal patterns moves in space relative to time.

[0610] K29. The method according to section K28, wherein at least one of a first set of encoded spatio - temporal patterns and a second set of encoded spatio - temporal patterns moves in a predetermined pattern.

[0611] K30. The method according to any one of sections K1 - K29, wherein storing the first set of decoded data and the second set of decoded data includes storing to a storage device.

[0612] L1. A method for transmitting data in a data center, comprising:

[0613] Encoding a first set of data and a second set of data into a first set of encoded spatio - temporal patterns and a second set of encoded spatio - temporal patterns;

[0614] Displaying the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns;

[0615] Obtaining the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns spatio - temporally; and

[0616] Decoding the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns into a first set of data and a second set of data.

[0617] L2. The method according to section L1, further comprising obtaining the first set of data and the second set of data from a first sending node.

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

[0619] L4. The method according to any one of sections L1 - L3, wherein the first set of data is obtained from a first sending node, and the second set of data is obtained from a second sending node.

[0620] L5. The method according to any one of sections L1 - L4, wherein at least one of the first set of data and the second set of data is un - serialized data.

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

[0622] L7. The method according to section L6, wherein the code symbols are organized into encoded spatio-temporal patterns.

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

[0624] L9. The method according to any one of sections L1-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.

[0625] L10. The method according to section L9, wherein at least two of the colors are used to encode data.

[0626] L11. The method according to section L9, wherein at least one of the colors is used to provide header information.

[0627] L12. The method according to section L11, wherein the header information indicates the intended recipient of the data.

[0628] L13. The method according to section L11, wherein the header information indicates the priority of the data.

[0629] L14. The method according to any one of sections L6-L8, wherein at least one code symbol includes an intensity level different from another code symbol.

[0630] L15. The method according to section L14, wherein at least one intensity level is used to provide header information.

[0631] L16. The method according to section L15, wherein the header information indicates the intended recipient of the data.

[0632] L17. The method according to section L15, wherein the header information indicates the priority of the data.

[0633] L18. The method according to any one of sections L1-L17, wherein at least one of the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns includes near-visible light.

[0634] L19. The method according to section L18, wherein the near-visible light is one or more of UV light and IR light.

[0635] L20. The method according to any one of sections L18 or L19, wherein the near-visible light indicates the intended recipient of the data.

[0636] L21. The method according to any one of paragraphs L18 or L19, wherein the near visible light indicates the priority of the data.

[0637] L22. The method according to any one of paragraphs L1 - L21, wherein at least one of the first set of encoded spatio - temporal patterns and the second 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.

[0638] L23. The method according to paragraph L22, 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.

[0639] L24. The method according to any one of paragraphs L22 or L23, wherein at least one of the shape factor, the position factor, and the size factor indicates the priority of the data.

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

[0641] L26. The method according to paragraph L25, wherein at least one of the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns moves in a predetermined pattern.

[0642] L27. The method according to any one of paragraphs L1 - L26, wherein displaying the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns includes displaying onto a screen via a projector.

[0643] L28. The method according to any one of paragraphs L1 - L26, wherein displaying the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns includes displaying via at least one of a computer screen and a TV monitor.

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

[0645] L30. The method according to any one of paragraphs L1 - L29, wherein displaying the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns includes displaying the first set of encoded spatio - temporal patterns on a first display and displaying the second set of encoded spatio - temporal patterns on a second display.

[0646] L31. The method according to any one of paragraphs L1 - L30, wherein the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns at least partially overlap.

[0647] L32. The method according to any one of Sections L1 - L31, wherein obtaining the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns spatio - temporally includes obtaining through at least one of a camera, a video camera, and an image sensor.

[0648] L33. The method according to Section 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.

[0649] L34. The method according to any one of Sections L1 - L31, wherein obtaining the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns spatio - temporally includes obtaining through a first camera and a second camera.

[0650] L35. The method according to Section L34, wherein the first camera is capable of capturing visible light, and the second camera is capable of capturing near - visible light.

[0651] L36. The method according to any one of Sections L6 - L8, wherein decoding the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns into a first set of data and a second set of data includes decoding code symbols into data.

[0652] L37. The method according to Section L36, wherein decoding the code symbols into data further includes decoding the code symbols into a bitstream and decoding the bitstream into data.

[0653] L38. The method according to any one of Sections L1 - L37 further includes storing the first set of decoded data and the second set of decoded data in a storage device.

[0654] L39. The method according to Section L2, wherein the first sending node is configured to obtain the first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns being displayed.

[0655] L40. The method according to Section L39, wherein the first sending node verifies that the first set of data and the second set of data are correctly output according to the obtained first set of encoded spatio - temporal patterns and the second set of encoded spatio - temporal patterns being displayed.

[0656] L41. The method according to Section L40, wherein the first sending node is configured to: if the data is not correctly displayed, re - send the first set of data or the second set of data.

[0657] This document describes one or more specific embodiments of the present disclosure. These described embodiments are examples of the presently disclosed technology. Additionally, to provide a concise description of these embodiments, not all features of the actual embodiments may 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 embodiment-specific decisions will be made to achieve the developer's specific goals, such as complying with system- and business-related constraints, which may vary from one embodiment to another. Moreover, it should be understood that such development efforts may be complex and time-consuming, but for those of ordinary skill in the art who benefit from the present disclosure, this remains a routine task in design, manufacturing, and production.

[0658] The articles “a,” “an,” and “the” are intended to mean that there is one or more of the elements 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 listed elements. Additionally, it should be understood that references in this disclosure to “one embodiment” or “an embodiment” are not intended to be construed as excluding the existence of additional embodiments that also incorporate the recited features. For example, any element described herein with respect to an embodiment may be combined with any element of any other embodiment described herein. The numbers, percentages, ratios, or other values described herein are intended to include that value, as well as other values that are “about” or “approximate” the described value as would be understood by one of ordinary skill in the art, which are covered by the embodiments of the present disclosure. Accordingly, the values should be interpreted broadly to cover at least values that are close enough to the value to perform the desired function or achieve the desired result. The values include at least the expected variations in a suitable manufacturing or production process and may include values that differ from the value by within 5%, within 1%, within 0.1%, or within 0.01% of the value.

[0659] In view of the present disclosure, those of ordinary skill in the art should recognize that equivalent structures do not depart from the spirit and scope of the present disclosure, and various changes, substitutions, and alterations may 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 the structures that perform the recited function described herein, including 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 claims in any claim except where the phrase “means for” appears in conjunction with the associated function. Every addition, deletion, and modification to an embodiment that falls within the meaning and scope of the claims should be covered by the claims.

[0660] As used herein, the terms "approximate", "about", and "substantially" denote a quantity that is close to the stated quantity but still enables the required function or achieves the required result. For example, the terms "approximate", "about", and "substantially" may refer to a range that is within 5%, 1%, 0.1%, and 0.01% below the stated quantity. In addition, it should be understood that any direction or reference frame in the foregoing description is merely a relative direction or movement. For example, any reference to "upward", "downward", "above", or "below" only describes the relative position or movement of the relevant element.

[0661] The present disclosure may be embodied in other specific forms without departing from its spirit or characteristics. The described embodiments are to be considered illustrative rather than restrictive. Accordingly, the scope of the present disclosure is indicated by the appended claims rather than the foregoing description. Changes within the meaning and range of equivalents of the claims are to be embraced within their scope.

Claims

1. A method for encoding data in a data center, comprising: Obtaining a first set of data and a second set of data to be encoded; Encoding the first set of data and the second set of data into a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns; And Outputting the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns.

2. The method according to claim 1, wherein the first set of data and the second set of data are obtained from a first sending node.

3. The method according to any one of claims 1 or 2, wherein the first set of data is obtained from a first sending node and the second set of data is obtained from a second sending node.

4. The method according to any one of claims 1 to 3, 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.

5. The method according to any one of claims 1 to 4, wherein at least one of the first set of data and the second set of data is non-serialized data.

6. The method according to claim 4, wherein the at least two colors are used to encode at least one of the first set of data and the second set of data.

7. The method according to claim 4, wherein at least one of the at least two colors is used to provide header information.

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

9. The method according to any one of claims 1-8, wherein at least one of the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns further includes at least one of the following: a shape factor, a position factor, a size factor, and a timing factor.

10. The method according to any one of claims 1-9, wherein the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns at least partially overlap.

11. A method for decoding data in a data center, comprising: Spatio-temporally obtaining a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns; Decoding the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns into a first set of decoded data and a second set of decoded data; And Storing the first set of decoded data and the second set of decoded data.

12. The method according to claim 11, wherein obtaining the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns spatio-temporally comprises: Obtained from at least one of a display and a projector screen.

13. The method according to any one of claims 11 or 12, wherein spatio-temporally obtaining the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns includes obtaining through at least one of the following: a camera, a video camera, and an image sensor.

14. The method according to any one of claims 11-13, wherein the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns include code symbols.

15. The method according to claim 14, wherein decoding the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns into the first set of decoded data and the second set of decoded data comprises: Decoding the code symbols into data.

16. A method for transmitting data in a data center, comprising: Encoding a first set of data and a second set of data into a first set of encoded spatio-temporal patterns and a second set of encoded spatio-temporal patterns; Displaying the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns; Obtain the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns spatio-temporally; And Decode the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns into the first set of data and the second set of data.

17. The method according to claim 16, further comprising obtaining the first set of data and the second set of data from a first sending node.

18. The method according to claim 17, wherein the first sending node is configured to obtain the first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns for display.

19. The method according to claim 18, wherein the first sending node verifies that the first set of data and the second set of data are correctly output according to the obtained first set of encoded spatio-temporal patterns and the second set of encoded spatio-temporal patterns for display.

20. The method according to claim 19, wherein the first sending node is configured to: if the data is not correctly displayed, re-transmit the first set of data or the second set of data.