Power-based decoding of data received via an optical communication path
By encoding binary characters using transmission power output in optical communication and using power-based compression algorithm to divide transmission packets, the problem of increasing bandwidth requirements in optical communication paths is solved, and efficient optical communication transmission is achieved.
Patent Information
- Application Number
- CN202080029564.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-04-18
- Filing Date
- 2020-03-25
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2040-03-25
AI Technical Summary
In the field of optical communication, the prior art is difficult to effectively solve the problem of increasing bandwidth demand for optical network service encoding methods in optical communication paths.
By encoding binary characters using the transmission power output, the encoded bitstream is efficiently divided into transmission packets using a power-based compression algorithm so that these packets are minimized within a predetermined time period.
The transmission rate of the optical communication path is improved, and the effective utilization of additional bandwidth is achieved without physically changing the optical communication path.
Smart Images

Figure CN113767578B_ABST
Abstract
Description
Technical Field
[0001] The subject matter disclosed herein relates generally to optical encoding techniques, and in particular to using optical power output as a mechanism for encoding repeating binary characters that appear in an encoded bit stream. Background Art
[0002] Optical communication uses light to communicate between an optical transmitter and an optical receiver (e.g., a photodetector). Optical communication is primarily used in the telecommunications field to transmit large amounts of data (e.g., voice services, Internet services, etc.) over long distances between two points. An optical communication path, such as an optical fiber, can carry optical network services for hundreds or thousands of devices. As the number of devices increases, the demand for optical communication bandwidth is also increasing. As the demand for optical communication bandwidth increases, new and improved ways of encoding optical network services are also needed. By adopting different optical coding schemes, optical communication paths can be improved to carry additional optical network services without having to physically change the optical communication path. Summary of the invention
[0003] To address these and other problems that arise in the field of optical communications, the present disclosure provides various optical encoding schemes that utilize transmission power output to encode one or more binary characters. An initial transmission power output can be mapped to a specific binary character, and repeated instances of the specific binary character can be mapped to a higher transmission power output. As described below, various partitioning schemes can be used to efficiently partition a sequence of binary characters into one or more transmission packets such that the transmission packets are minimized within a predetermined time period. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Some embodiments are shown by way of example and not limitation in the accompanying drawings.
[0005] Figure 1 is a block diagram illustrating an optical transmitter that communicates with an optical receiver using one or more optical communication paths according to an example embodiment.
[0006] Figure 2 FIG. 1 illustrates an exemplary embodiment of the present invention. Figure 1 Components of a light transmitter are shown.
[0007] Figure 3 FIG. 1 illustrates an exemplary embodiment of the present invention. Figure 1 of the optical receiver.
[0008] Figure 4 The diagram shows a method according to an example embodiment. Figure 1 A distribution of photons detected by an optical receiver, wherein the distribution corresponds to a transmission signal that has been compressed using a first power-based compression algorithm.
[0009] Figure 5The diagram shows a method according to an example embodiment. Figure 1 A distribution of photons detected by the optical receiver, wherein the distribution corresponds to a transmission signal that has been compressed using a second power-based compression algorithm.
[0010] Figure 6 The diagram shows a method according to an example embodiment. Figure 1 A distribution of photons detected by the optical receiver, wherein the distribution corresponds to a transmission signal that has been compressed using a third power-based compression algorithm.
[0011] Figure 7 An example embodiment of the present invention is shown in FIG. Figure 1 A method for transmitting a coded bit stream using an optical transmitter.
[0012] Figure 8 An example embodiment of the present invention is shown in FIG. Figure 1 A method for an optical receiver to receive a coded bit stream.
[0013] Fig. 9 A method for determining a use according to an example embodiment is illustrated. Figure 1 A method for an optical transmitter to send the optimal number of transmission packets.
[0014] Fig.10 A method for determining whether a transmission packet corresponds to a plurality of binary characters according to an example embodiment is illustrated.
[0015] Fig.11 is a block diagram illustrating components of a machine capable of reading instructions from a machine-readable medium (eg, a machine-readable storage medium or a machine-readable storage device) and performing any one or more of the methodologies discussed herein, according to some example embodiments.
[0016] Fig.12 A method for transmitting data over an optical communication path according to an example embodiment is illustrated. DETAILED DESCRIPTION
[0017] The following description describes the system, method, technology, instruction sequence and computing machine program product of the example embodiment of the present theme. In the following description, for the purpose of explanation, many specific details are set forth to provide an understanding of the various embodiments of the present theme. However, it is apparent to those skilled in the art that the embodiments of the present theme can be practiced without some or other details in these specific details. The examples only represent possible variations. Unless otherwise clearly stated, structures (e.g., structural components, such as modules) are optional and can be combined or subdivided, and operations (e.g., in processes, algorithms or other functions) can be sequentially varied or combined or subdivided.
[0018] The present disclosure provides systems and methods for optically compressing an encoded bitstream based on the power output of a light source and selectively activating the light source to transmit the compressed bitstream. The present disclosure also provides systems and methods for optically detecting the transmission of a compressed bitstream and decompressing the compressed bitstream to obtain an encoded bitstream.
[0019] In one embodiment, the disclosed systems and methods obtain an encoded bit stream by encoding the data to be optically transmitted using a source encoding technique (e.g., Huffman encoding, Lempel-Ziv encoding, Shannon-Fano encoding, any other source encoding technique, or a combination thereof. In another embodiment, source encoding of the data to be transmitted is omitted and / or bypassed.
[0020] Forward error correction (FEC) may then be performed on the coded bit stream to preserve information that may have been lost during transmission. Examples of error correction coding techniques that may be applied to the coded bit stream include Hamming codes, Reed-Solomon codes, and other such error correction coding techniques. The result of performing FEC on the coded bit stream is the coded bit stream along with redundant bits that are used to recover one or more bits of the coded bit stream.
[0021] A power shaping or power-based compression algorithm is then performed on the coded bit stream, including the data portion of the coded bit stream and the redundant bits added to the coded bit stream by error correction coding. As discussed in more detail, one or more power shaping or power-based compression algorithms can be performed on the coded bit stream to improve transmission throughput without physically changing the optical communication path in which the coded bit stream is transmitted. Typically, a power-based compression algorithm maps binary characters of the coded bit stream to the output power of a light source that transmits the coded bit stream through the optical communication path. Thereafter, the power-based compression algorithm searches for repeated instances of the binary character in the coded bit stream and replaces the repeated instances with a single instance of the binary character. However, the replacement binary character is specified to be transmitted at an increased power level compared to the individual binary character that the replacement binary character replaces.
[0022] For example, assume that a binary character "1" is mapped to a first transmission power level of 5dBm, and the encoded bit stream to be transmitted is "1 1 1 1 1". In addition, assume that the power-based compression algorithm introduces an additional 2dBm for each additional binary character replaced after the first binary character. Thus, in this example, the encoded bit stream of "1 1 1 1 1" is replaced with a single binary character "1". In addition, instead of specifying that five binary 1s are transmitted at a power level of 5dBm each in five separate instances (e.g., T1, T2, T3, etc.), a light source is introduced to transmit a single binary character "1" at a power level of 13dBm in a single time period (e.g., T1) (e.g., an initial 5dBm for the first binary character, then an additional 2dBm for each additional binary character). When the receiver detects the increased power level of the received transmission packet in the single time period, the receiver applies the power-based decompression algorithm to determine that the received transmission packet represents multiple binary characters, and to determine the number of binary characters represented by the single transmission packet.
[0023] Thus, the aforementioned power-based compression algorithm is an example of a manner in which a binary character can be compressed and represented by the power output of a single transmission packet. Figure 4-6 As discussed, variations of the foregoing examples are possible and are contemplated to fall within the scope of the present disclosure. Variations include, but are not limited to, taking into account the maximum transmission power output by the light source, optimizing the number of packets that can be transmitted at a power level less than the maximum transmission power, determining a manner to power shape the power level of the transmission packets, and other such variations or combinations thereof.
[0024] Additional operations are then performed on the power shaped encoded bit stream before transmission by the optical source. These operations include, but are not limited to, applying a modulation scheme to modulate the power shaped encoded bit stream using a predetermined carrier, and up-converting the modulated signal to a frequency suitable for transmission over an optical communication path.
[0025] Similar operations are then performed by a receiver that receives the modulated signal from the transmitter. These operations include, but are not limited to, down-converting the received modulated signal to a carrier frequency, demodulating the power-shaped encoded bit stream from the carrier, and decompressing the power-shaped encoded bit stream using a power-based decompression algorithm. Further operations include applying a source decoding technique (e.g., Huffman decoding) to obtain decoded data, and then storing the decoded data in a computer-readable storage device. Storing the decoded data may include storing the decoded data in a short-term memory, such as a random access memory (RAM), or in a long-term storage, such as a hard drive (e.g., a magnetic disk or flash drive), an optical disk, or other long-term storage.
[0026] An additional technique disclosed herein is that a receiver can be trained via one or more machine learning techniques to identify whether a transmission packet sent by an optical transmitter represents a single binary character or more than one binary character. An example of a machine learning technique that can be used by an optical receiver is Poisson regression, which is disclosed in an online article "Progression Regression" published by Microsoft Corporation and is available at https: / / docs.microsoft.com / en-us / azure / machine-leaming / studio-module-reference / poisson-regression#technical-notes. The machine learning technique helps the receiver learn the power level of the transmission packets sent by the transmitter and identify when a series of photons received at a specific power level (or approximate power level) represents a transmission packet sent by the optical transmitter. In another embodiment, a Poisson distribution is developed for the optical transmitter, wherein a Poisson distribution is developed for one or more transmission power levels output by the optical transmitter and then used to match the transmission packets transmitted by the optical transmitter.
[0027] In this way, the present disclosure provides an optical encoding mechanism that compresses a coded bit stream using a power-based compression algorithm, and an optical decoding mechanism that decompresses the coded bit stream using a power-based decompression algorithm. This method has multiple technical benefits. For example, one technical benefit is that the transmission rate of the optical communication path is increased without having to physically change the optical communication path to accommodate the additional throughput. Another technical benefit is that the power-based compression algorithm can be applied to traditional transmission equipment without having to add additional transmission hardware or modify existing transmission hardware, because the focus of the power-based compression algorithm is to map binary characters to the transmission power level supported by the transmission equipment.
[0028] The disclosure now turns to various disclosed embodiments implementing aspects of the technology described herein. Figure 1 1 is a block diagram illustrating two computing devices 104-106 communicating with each other via an optical transmitter 108 and an optical receiver 110. Computing device 104 sends data to computing device 106 via optical transmitter 108, which encodes the data to obtain an encoded bit stream and uses a power-based compression algorithm to obtain a compressed bit stream for transmission over optical communication paths 114-116. Optical receiver 110 is configured to receive the power-shaped bit stream from optical transmitter 108 and transmit the uncompressed and decoded data to computing device 106.
[0029] The optical transmitter 108 may communicate directly with the optical receiver 110 via one or more optical communication paths 114-116. Additionally, and / or alternatively, a network 112 may be disposed between the optical transmitter 108 and the optical receiver 110, and the optical transmitter 108 and the optical receiver 110 communicate with the network 112 via the optical communication paths 114-116.
[0030] The computing device 104 may include, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a portable digital assistant (PDA), a smart phone, a tablet computer, an ultrabook, a netbook, a laptop computer, a multiprocessor system, a microprocessor-based or programmable consumer electronic product, or any other communication device that a user can use to perform various computing tasks (e.g., access the Internet, make phone calls, conduct video conferences, etc.). In some embodiments, the computing device 104 may include a display module (not shown) to display information (e.g., in the form of a user interface). In further embodiments, the computing device 104 may include one or more of a touch screen, an accelerometer, a gyroscope, a camera, a microphone, a global positioning system (GPS) device, etc.
[0031] The computing device 106 may include, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a portable digital assistant (PDA), a smart phone, a tablet computer, an ultrabook, a netbook, a laptop computer, a multiprocessor system, a microprocessor-based or programmable consumer electronic product, or any other communication device that a user can use to perform various computing tasks (e.g., access the Internet, make phone calls, conduct video conferences, etc.). In some embodiments, the computing device 106 may include a display module (not shown) to display information (e.g., in the form of a user interface). In further embodiments, the computing device 106 may include one or more of a touch screen, an accelerometer, a gyroscope, a camera, a microphone, a global positioning system (GPS) device, etc.
[0032] In addition, computing device 104 and / or computing device 106 may be implemented as a server that provides various functions and / or computerized services. For example, computing device 104 and / or computing device 106 may provide a file hosting service, a video streaming service, an audio streaming service, a web hosting service, an online gaming service, an online banking service, or any other computerized service or combination thereof. Computing devices 104-106 may be implemented as a client / server relationship (e.g., computing device 104 is a client device and computing device 106 is a server device), a peer-to-peer relationship (e.g., computing device 104 is a client device and computing device 106 is a client device), or a server-to-server relationship (e.g., computing devices 104-106 are all implemented as servers and communicate with each other to provide various services to each other). In some examples, computing devices 104 and 106 may include corresponding optical transmitters 108 and optical receivers 110.
[0033] The network 112 disposed between the computing device 104 and the computing device 106 may include one or more types of networks. For example, the network 112 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), a wireless wide area network (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the public switched telephone network (PSTN), a cellular telephone network, a wireless network, a Wi-Fi network, a WiMAX network, another type of network, or a combination of two or more such networks.
[0034] The optical communication paths 114-116 may include one or more physical media through which laser light or light communicates. One example of a transmission medium that may be included in the optical communication paths 114-116 is one or more optical fibers, such as single-mode optical fibers or multimode optical fibers, wherein the optical fibers include glass optical fibers, polymer optical fibers, or a combination thereof. Another example of a transmission medium is a gas, such as air, wherein the optical transmitter 108 communicates with the optical receiver 110 by sending one or more transmission packets on and / or through the gas.
[0035] exist Figure 1 , communication between optical transmitter 108 and optical receiver 110 is shown as a unidirectional path (e.g., optical transmitter sends transmission packets to optical receiver 110). However, in other embodiments, computing device 106 may also communicate with an optical transmitter (not shown) that communicates with an optical receiver (not shown) that is communicatively coupled to computing device 104. Thus, communication between computing device 104 and computing device 106 may also be a bidirectional communication path.
[0036] refer to Figure 2 , Figure 2According to an example embodiment Figure 1 Components of the light emitter 108 shown. Figure 2 As shown, and in one embodiment, the optical transmitter 108 includes various components 202-218. These components 202-218 include, but are not limited to, a communication interface 202, one or more processors 204, a computer storage device 206, a source coding module 208, an error control coding (ECC) module 210, and a power shaping coding module 212. The components 202-218 also include a baseband modulator / filter 214, an up-converting module 216, and a light source 218.
[0037] The various components 202-218 of the optical transmitter 108 may be implemented in a single device, may reside on a single device, or may be distributed across multiple devices in various arrangements. The various components 202-218 of the optical transmitter 108 may access one or more computer storage devices for configuration information and / or implementation algorithms, and each of the various components 202-218 may communicate with each other (e.g., via one or more communication buses, etc.). Furthermore, although discussed in the singular sense, Figure 2 Components 202-218 are shown in the accompanying drawings, but it will be understood that multiple instances of components 202-218 may be employed in other embodiments.
[0038] One or more of the components 208-218 may be implemented in hardware and / or software. In one embodiment, the components 208-218 are implemented as a dedicated circuit, such as an application specific integrated circuit (ASIC), wherein the dedicated circuit is configured to perform a predetermined function. For example, the source encoding module 208 may be implemented as an ASIC configured to perform Huffman encoding on a bit stream corresponding to the data 220. As another example, the ECC module 210 may be implemented as an ASIC configured to perform Reed Solomon code on the encoded bit stream output by the source encoding module 208. In addition, and / or alternatively, the components 208-218 may be implemented as software, wherein the processor 204 is configured to execute computer-readable instructions that implement the components 208-218. In addition, the aforementioned combination is possible, wherein some modules are implemented as dedicated circuits and other modules are implemented as software. In this way, the optical transmitter 108 may include components 208-218 implemented in hardware and / or software.
[0039] The communication interface 202 is configured to communicate with the computing device 104. In this regard, communication with the computing device 104 includes receiving data from the computing device 104 and / or sending data to the computing device 104. The optical transmitter 108 may also receive instructions and / or configurations from the computing device 104 via the communication interface 202. For example, the optical transmitter 108 may receive data 220 and / or one or more encoding algorithms 222 from the computing device 104.
[0040] The communication interface 202 may include one or more wired and / or wireless communication interfaces. For example, the communication interface 202 may include a wireless transceiver, Radio and / or wired network interface. In one embodiment, the communication interface 202 is configured to establish a wireless communication channel with the computing device 104 using one or more wireless communication protocols such as 802.11b / g / n. In addition, and / or alternatively, the optical transmitter 108 can establish a communication channel with the computing device 104 via wires or other physical media (e.g., via an Ethernet cable, etc.). In yet another embodiment, the communication interface 202 is a local bus that allows direct communication between the optical transmitter 108 and the computing device 104.
[0041] The processor 204 is configured to execute computer-readable instructions that implement one or more of the modules 208-216. In addition, and / or alternatively, the processor 204 can be configured to retrieve computer-readable instructions from the computer storage device 206. One or more processors 204 can be any type of commercial processor, for example, the processor can be obtained from Intel Corporation, Advanced Micro Devices, Texas Instruments or other such processors. In addition, one or more processors 204 may include one or more special-purpose processors, such as field programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs). One or more processors 204 may also include programmable logic or circuits that are temporarily configured by software to perform certain operations. Therefore, once configured by such software, one or more processors 204 become specific machines (or specific components of machines), which are uniquely customized to perform the configured functions and are no longer general-purpose processors 204.
[0042] Where one or more processors 204 implement modules 208-216 via one or more computer-readable instructions, the computer-readable instructions may be written in one or more computer programming and / or computer scripting languages. Examples of such languages include, but are not limited to, C, C++, C#, Java, JavaScript, Perl, Python, or any other computer programming and / or scripting language now known or later developed.
[0043] The optical transmitter 108 may also include various computer storage devices 206 and / or computer-readable media for storing data 220 and / or encoding algorithms 222. Computer storage devices 206 include one or more physical devices configured to temporarily or permanently store instructions and data, and may include, but are not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage (e.g., erasable programmable read-only memory (EEPROM)), and / or any suitable combination thereof. The term "computer storage device" should be taken to include a single device or multiple devices (e.g., a centralized or distributed database, or associated caches and servers) capable of storing data 220 and one or more encoding algorithms 222. Thus, computer storage devices 206 may be implemented as a single storage device or device, or alternatively and / or additionally, as a "cloud-based" storage system or storage network including multiple storage devices or devices.
[0044] The data 220 of the computer storage device 206 includes information that the computing device 104 intends to transfer to the computing device 106. The data 220 may also include computer-readable instructions that configure the one or more processors 204 to implement one or more of the modules 208-216.
[0045] The encoding algorithm 222 includes one or more algorithms for encoding the data 220 to be transmitted via the light source 218. In one embodiment, the encoding algorithm 222 includes one or more source encoding algorithms for implementation by the source encoding module 208. Examples of source encoding algorithms that may be included in the encoding algorithm 222 include Huffman encoding, Lempel-Ziv encoding, Shannon-Fano encoding, and other such encoding algorithms or combinations thereof.
[0046] In another embodiment, the encoding algorithm 222 includes one or more error correction coding algorithms applied by the ECC module 210. For example, the ECC module 210 can reference a memory address of the computer storage device 206 to retrieve the error control coding algorithm to be applied to the encoded bit stream. Alternatively, the ECC module 210 can reference a variable name, which can store a variable value or a constant value, where the value referenced by the variable name indicates the error control coding algorithm to be applied. The error control coding algorithms applicable by the ECC module 210 may include, but are not limited to, Hamming codes, Reed Solomon codes, and other such error correction coding techniques, or combinations thereof.
[0047] In another embodiment, the encoding algorithm 222 includes one or more power-based compression algorithms for the power shaping encoding module 212. In one embodiment, the power-based compression algorithm maps a repeating string of binary characters within an encoded bitstream (e.g., a bitstream to which source encoding is applied) to a specific power level that can be transmitted by the light source 218. In one embodiment, the power-based compression algorithm maps the repeating string of binary characters to a power level regardless of the transmission output of the light source 218. In another embodiment, the power-based compression algorithm maps the repeating string of binary characters to a predetermined transmittable power output of the light source 218, and in doing so generates one or more transmission packets corresponding to the repeating string of binary characters. In some cases, the predetermined transmittable power output of the light source 218 is the maximum transmittable power output of the light source 218.
[0048] In some cases, the string of repeating binary characters includes repeating "1" values (e.g., "1 1 1", "1 1 11", "1 1 1 1 11", etc.). In other cases, the string of repeating binary characters includes repeating "0" values (e.g., "0 00", "0 0 0 0", "0 0 0 0 0", etc.). The power-based compression algorithm may include one or more algorithms for performing power-based compression on repeating "1" values, one or more algorithms for performing power-based compression on repeating "0" values, or a combination of these algorithms.
[0049] When mapping a repeating string of binary characters to a power level that may be output by the light source 218, each repeated binary character in the string increases the power level at which the replacement binary character is emitted. For example, a string of four "1" binary characters may be mapped to a power level that has been increased by four times a predetermined amount (e.g., 0.5 dBm, 1 dBm, etc.). In this embodiment, the increase in the power level output by the light source 218 is related to the number of repeated binary characters in a particular string of repeated binary characters.
[0050] In another embodiment of mapping a string of binary characters to an output power level, increasing the power level can be associated with additional binary characters in a particular string. In addition, and / or alternatively, the increased power level can be arbitrarily assigned or can be assigned via manually provided input (e.g., by an operator of the optical transmitter 108). For example, the mapping can define that a string including four repeated binary characters is output at 8 dBm, a string including five repeated binary characters is output at 8.6 dBm, a string including six repeated binary characters is output at 9 dBm, and a string including seven repeated binary characters is output at 9.3 dBm. In this example, the power level is increased for each additional binary character added to the repeated string of binary characters, but the increase in power level is not performed at equal intervals.
[0051] In yet another embodiment of mapping a string of binary characters to an output power level, the power level may not increase incrementally, but may be randomly assigned and / or provided by a human operator. For example, the mapping may define that a string comprising four repeating binary characters is output at 6 dBm, a string comprising five repeating binary characters is output at 5.3 dBm, a string comprising six repeating binary characters is output at 7.2 dBm, and a string comprising seven repeating binary characters is output at 6.7 dBm. In this example, the power level is at a varying output level and does not necessarily increase with the addition of another repeating binary character.
[0052] In yet another embodiment, a power-based compression algorithm maps a repeating string of binary characters to an optimized number of transmission packets, where the optimized number of transmission packets is based on a predetermined power level that can be transmitted by light source 218 and the number of packets to be transmitted at the predetermined power level. In some cases, the predetermined power level is the maximum power level output by light source 218. Each of these power-based compression algorithms Figure 4-6 Furthermore, combinations of the above are also possible.
[0053] The source encoding module 208 is configured to encode the data 220 according to one or more encoding algorithms 222. In one embodiment, the source encoding module 208 retrieves the data 220 from the computer storage device 206 and applies a source encoding algorithm defined by the one or more encoding algorithms 222. In another embodiment, the source encoding module 208 is preconfigured with source encoding to apply to the data 220. The output generated by the source encoding module 208 is an encoded bit stream, which can be stored as part of the data 220 of the computer storage device 206. In addition, and / or alternatively, the encoded bit stream can be transmitted to another module 210-216 of the optical transmitter 108, such as the ECC module 210 or the power shaping encoding module 212, in real time or near real time.
[0054] The ECC module 210 is configured to apply error correction coding to the encoded bit stream output by the source encoding module 208. In some cases, the data 220 may not be encoded by the source encoding module 208, in which case the ECC module 210 applies the error correction coding to the data 220 that the ECC module 210 retrieves from the computer storage device 206. The output from the ECC module 210 is one or more redundant bits that the optical receiver 110 can use to recover one or more information bits transmitted by the optical source 218.
[0055] The power shaping encoding module 212 is configured to apply a power-based compression algorithm to the coded bit stream and the redundant bits to obtain a power-shaped coded bit stream that is ultimately output by the light source 218. The power shaping encoding module 212 can be configured to selectively apply the power-based compression algorithm to one or more portions of the coded bit stream. The output from the power shaping encoding module 212 is a compressed bit stream in which repeated strings of binary characters in the coded bit stream and / or the redundant bits have been replaced with one or more binary characters, depending on the power-based compression algorithm used by the power shaping encoding module 212. As described above, the one or more replaced binary characters correspond to the transmission power level output by the light source 218.
[0056] In one embodiment, the compressed bit stream (including any redundant bits) is transmitted to the baseband modulator / filter 214. The baseband modulator / filter 214 modulates a signal corresponding to the compressed bit stream with a carrier signal transmitted by the light source 218. The baseband modulator / filter 214 can use one or more modulation techniques to modulate the compressed bit stream with the carrier signal transmitted by the light source 218. Examples of modulation techniques include, but are not limited to, quadrature phase shift keying (QPSK), binary phase shift keying (BPSK), phase shift keying (PSK), quadrature amplitude modulation (QAM), amplitude and phase shift keying (APSK), and other such modulation techniques or combinations thereof. In addition, the carrier signal transmitted by the light source 218 can be directly modulated by the baseband modulator / filter 214, wherein the light source 218 is configured to transmit a carrier signal when encountering a first binary character (e.g., binary "1") in the compressed bit stream and is configured not to transmit a carrier signal when encountering a second binary character (e.g., binary "0") in the compressed bit stream.
[0057] In addition, the baseband modulator / filter 214 can filter the modulated signal to be emitted by the light source 218 based on the desired wavelength. In one embodiment, the baseband modulator / filter 214 filters the modulated signal to be emitted by the light source 218 to within a desired wavelength, such as 650nm, 850nm, 1300nm, 1310nm, and other such wavelengths. In some cases, the filter of the baseband modulator / filter 214 can be applied after the modulated signal has been up-converted to another frequency and / or wavelength. In this way, the baseband modulator / filter 214 ensures that the signal emitted by the light source 218 is within a desired or selected wavelength.
[0058] In some cases, the baseband modulator / filter 214 can be applied to the compressed bit stream output by the power shaping encoding module 212, such as when the compressed bit stream is to be transmitted with a carrier signal. In other cases, the power shaping encoding module 212 can transmit the compressed bit stream to the light source 218, where the baseband modulator / filter 214 directly modulates the output of the light source 218.
[0059] The up-conversion module 216 is configured to apply a frequency up-conversion technique to convert the frequency of the modulated signal (e.g., the modulated signal output by the baseband modulator / filter 214) to a higher or lower frequency to be emitted by the light source 218. In one embodiment, the up-conversion module 216 is implemented as a finite impulse response (FIR) interpolator, a cascaded integrator comb (CIC) compensator, and a CIC interpolator. The input of the up-conversion module 216 includes the modulated signal (e.g., the frequency of the modulated signal) output by the baseband modulator / filter 214 and a local oscillator signal, wherein the output includes a new signal having a frequency within a specific range of desired frequencies (e.g., the sum of the two signals and / or the difference of the two signals). A bandpass filter (not shown) can then be applied to the output signal to select which of the two output signals is desired (e.g., the sum of the two signals or the difference of the two signals).
[0060] In some cases, the up-conversion module 216 can be applied to the modulated signal, wherein the modulated signal includes a radio frequency (RF) signal lower than the desired frequency. In other cases, the up-conversion module 216 can be bypassed and the modulated signal can be transmitted directly to the light source 218, such as when the modulated signal is within the desired frequency range.
[0061] The light source 218 is configured to transmit the signals output by the power shaping encoding module 212, the baseband modulator / filter 214, and / or the up-conversion module 216. In one embodiment, the transmission of the light source 218 is divided into transmission packets, where each transmission packet corresponds to a binary value within the compressed bit stream output by the power shaping encoding module 212. In addition, each transmission packet can be associated with a specific power level, so that the light source 218 transmits the transmission packet at its associated power level. The light source 218 is also configured to transmit the transmission packets at known time intervals (e.g., maintained by an internal clock circuit, etc.), and the optical receiver (referenced to FIG. 1 ) can transmit the transmission packets at known time intervals (e.g., maintained by an internal clock circuit, etc.). Figure 3 Discussion) is configured to detect transmission packets at known time intervals. In this way, the optical transmitter 108 is configured to transmit transmission packets corresponding to the data 220 via one or more optical communication paths 114-116 and / or the network 112.
[0062] refer to Figure 3 , Figure 3 According to an example embodiment Figure 1 Components of the optical receiver 110 shown. Figure 3As shown, and in one embodiment, the optical receiver 110 includes various components 302-318. These components 302-318 include, but are not limited to, one or more processors 302, a communication interface 304, an optical photodetector 306, a baseband demodulator 310, and a power shaping decoding module 312. The components 302-318 also include an ECC decoding module 316, a source decoding module 314, a computer storage device 318, and an output synchronization 320.
[0063] The various components 302-318 of the optical receiver 110 may be implemented in a single device, may reside on a single device, or may be distributed across multiple devices in various arrangements. The various components 302-318 of the optical receiver 110 may access one or more computer storage devices for configuration information and / or implementation algorithms, and each of the various components 302-318 may communicate with each other (e.g., via one or more communication buses, etc.). Furthermore, although discussed in the singular sense, Figure 3 Components 302-318 are shown in the accompanying drawings, but it will be appreciated that multiple instances of components 302-318 may be employed in other embodiments.
[0064] One or more of the components 306-318 may be implemented in hardware and / or software. In one embodiment, the components 306-318 are implemented as a dedicated circuit, such as an application specific integrated circuit (ASIC), wherein the dedicated circuit is configured to perform a predetermined function. For example, the source decoding module 314 may be implemented as an ASIC configured to perform Huffman decoding on the decompressed bit stream obtained by the power shaping decoding module 312. As another example, the ECC decoding module 316 may be implemented as an ASIC configured to decode the compressed bit stream using a Reed Solomon code. In addition, and / or alternatively, the components 306-318 may be implemented as software, wherein the processor 302 is configured to execute computer-readable instructions that implement the components 306-318. In addition, the aforementioned combination is possible, wherein some modules are implemented as dedicated circuits and other modules are implemented in software. In this way, the optical receiver 110 may include components 306-318 implemented in hardware and / or software.
[0065] The communication interface 304 is configured to communicate with the computing device 106 and / or the network 112. In this regard, communication with the computing device 106 includes receiving data from the computing device 106 and / or sending data to the computing device 106. The optical receiver 110 may also receive instructions and / or configurations from the computing device 106 via the communication interface 304. For example, the optical receiver 110 may receive data 322, one or more decoding algorithms 324, and one or more detection models 326 from the computing device 106.
[0066] The communication interface 304 may include one or more wired and / or wireless communication interfaces. For example, the communication interface 304 may include a wireless transceiver, Radio and / or wired network interface. In one embodiment, the communication interface 304 is configured to establish a wireless communication channel with the computing device 106 using one or more wireless communication protocols such as 802.11b / g / n. In addition, and / or alternatively, the optical receiver 110 can establish a communication channel with the computing device 106 via wires or other physical media (e.g., via an Ethernet cable, etc.). In yet another embodiment, the communication interface 202 is a local bus that allows direct communication between the optical receiver 110 and the computing device 106.
[0067] The processor 302 is configured to execute computer-readable instructions that implement one or more of the modules 306-318. In addition, and / or alternatively, the processor 302 can be configured to retrieve computer-readable instructions from a computer storage device 318. One or more processors 302 can be any type of commercial processor, such as a processor available from Intel Corporation, Advanced MicroDevices, Texas Instruments, or other such processors. In addition, one or more processors 302 can include one or more special-purpose processors, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). One or more processors 302 may also include programmable logic or circuits that are temporarily configured by software to perform certain operations. Therefore, once configured by such software, one or more processors 302 become a specific machine (or a specific component of a machine) that is uniquely customized to perform the configured function and is no longer a general-purpose processor 302.
[0068] Where one or more processors 302 implement modules 306-318 via one or more computer-readable instructions, the computer-readable instructions may be written in one or more computer programming and / or computer scripting languages. Examples of such languages include, but are not limited to, C, C++, C#, Java, JavaScript, Perl, Python, or any other computer programming and / or scripting language now known or later developed.
[0069] The optical receiver 110 may also include various computer storage devices 318 and / or computer-readable media for storing data 322, decoding algorithms 324, and / or one or more detection models 326. Computer storage devices 318 include one or more physical devices configured to temporarily or permanently store instructions and data, and may include, but are not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of memory (e.g., erasable programmable read-only memory (EEPROM)), and / or any suitable combination thereof. The term "computer storage device" should be considered to include a single device or multiple devices (e.g., a centralized or distributed database, or associated caches and servers) capable of storing data 322, one or more decoding algorithms 324, and / or detection models 326. Thus, computer storage devices 318 may be implemented as a single storage device or device, or alternatively and / or additionally, as a "cloud-based" storage system or storage network, including multiple storage devices or devices.
[0070] Data 322 of computer storage device 318 includes information received from computing device 104 via optical transmitter 108. Data 322 may also include computer-readable instructions that configure one or more processors 302 to implement one or more of modules 306-318.
[0071] Decoding algorithms 324 include one or more algorithms for decoding a bitstream received from computing device 104. In one embodiment, decoding algorithms 324 include one or more source decoding algorithms implemented by source decoding module 314. Examples of source decoding algorithms that may be included in decoding algorithms 324 include Huffman decoding, Lempel-Ziv decoding, Shannon-Fano decoding, and other such decoding algorithms or combinations thereof.
[0072] In another embodiment, the decoding algorithm 324 includes one or more error correction decoding algorithms for decoding one or more redundant bits included in the bit stream transmitted by the optical transmitter 108. In the case where the ECC decoding module 316 is implemented in hardware, the ECC decoding module 316 can be configured to reference a memory address of the computer storage device 318 to retrieve an error control decoding algorithm to apply to the received bit stream and the redundant bits included therein. Alternatively, the ECC decoding module 316 can reference a variable name, which can store a variable value or a constant value, wherein the value referenced by the variable name indicates the error control decoding algorithm to be applied. The error control decoding algorithm applicable to the ECC decoding module 316 may include, but is not limited to, Hamming code, Reed-Solomon code and other such error correction coding techniques, or a combination thereof.
[0073] In another embodiment, the decoding algorithm 324 includes one or more power-based decompression algorithms for the power shaping decoding module 312. In one embodiment, the power-based decompression algorithm utilizes a string of repeating binary characters within the transmitted bit stream to map a specific power level detectable by the optical receiver 110. In one embodiment, the power-based decompression algorithm maps the specific power level of the repeating string of binary characters to a power level regardless of the transmission power detected by the optical receiver 110. In another embodiment, the power-based decompression algorithm maps a predetermined transmittable power output detectable by the optical receiver 110 to the repeating string of binary characters, and in doing so, determines that a transmission packet having a predetermined transmittable power output corresponds to the repeating string of binary characters. In some cases, the predetermined transmit power output is a maximum transmittable power output.
[0074] When mapping a repeating string of binary characters to a power level detectable by the optical photodetector 306, a higher power level corresponds to the number of binary characters that have been repeated. For example, a string of binary characters including four "1's" may be mapped to a power level that has been increased by four times a predetermined amount (e.g., 0.5 dBm, 1 dBm, etc.), and the optical photodetector 306 may detect this increase in power level. In this embodiment, the increase in power level detected by the optical photodetector 306 is related to the number of repeated binary characters in a particular string of repeated binary characters.
[0075] In another embodiment of mapping a string of binary characters to a detected power level, an increased power level can be associated with an additional binary character in a particular string. In addition, and / or alternatively, the increased power level can be arbitrarily assigned or can be assigned via manually provided input (e.g., by an operator of the optical transmitter 108). For example, the mapping can define a detected power level of 8 dBm associated with a string including four repeated binary characters, a detected power level of 8.6 dBm associated with a string including five repeated binary characters, a detected power level of 9 dBm associated with a string including six repeated binary characters, and a detected power level of 9.3 dBm associated with a string including seven repeated binary characters. In this example, the increased power level is associated with the increased number of repeated binary characters, but the increase in power level is not equally spaced.
[0076] In yet another embodiment of mapping a string of binary characters to output power levels, the power levels may not be incrementally increased, but may be randomly assigned and / or provided by a human operator. For example, the mapping may define a detected power level of 6 dBm corresponding to a string comprising four repeated binary characters, a detected power level of 5.3 dBm corresponding to a string comprising five repeated binary characters, a detected power level of 7.2 dBm corresponding to a string comprising six repeated binary characters 2 dBm, and a detected power level of 6.7 dBm corresponding to a string comprising seven repeated binary characters. In this example, the power levels are detected at varying output levels, and a higher output level is not necessarily associated with the addition of another repeated binary character.
[0077] Reference Figure 4-6 The manner in which a power-based decompression algorithm is applied to the transmitted bit stream is discussed. Furthermore, combinations of the above are also possible.
[0078] The computer storage device 318 is also configured to store one or more detection models 326. The detection model 326 is a model used by the processor 302 to determine whether the plurality of photons detected by the optical photodetector 306 represent a transmission packet transmitted by the optical transmitter 108. In one embodiment, the detection model 326 is developed using a machine learning technique (e.g., Poisson regression) during various stages of transmission by the optical transmitter 108. Although Poisson regression is provided as an example of a machine learning technique, other machine learning techniques, supervised and / or unsupervised, can be used to construct the detection model 326. Examples of supervised machine learning techniques include linear regression, logistic regression, classification and regression trees (CART), naive Bayes, k-nearest neighbors (KNN), and other such supervised machine learning techniques. Examples of unsupervised machine learning techniques include Apriori, k-means, principal component analysis (PCA), random forest bagging, and other such unsupervised machine learning techniques. A combination of the foregoing may also be used to construct the detection model 326.
[0079] In addition, each of the detection models 326 can be associated with a corresponding power-based compression algorithm and / or a power-based decompression algorithm. In one embodiment, the power-based compression algorithm is known (e.g., it is transmitted by and / or transmitted to the optical transmitter 108), and the selection of the power-based compression algorithm results in the selection of the corresponding detection model (e.g., a detection model trained using the selected power-based compression algorithm). In another embodiment, the processor 302 uses the detection models 326 and the incoming transmissions from the optical transmitter 108 to determine which detection model best represents the transmission packet transmitted by the optical transmitter 108. The determination and selection of the best fitting detection model causes the processor 302 to select the corresponding power-based decompression algorithm from the decoding algorithm 324. In yet another embodiment, a user or operator of the optical receiver 110 instructs the optical receiver 110 to use a specific detection model from the detection models 326.
[0080] When constructing one or more detection models 326, the optical receiver 110 can be calibrated based on the transmission power levels that can be output by the optical transmitter 108. For example, the optical transmitter 108 can be instructed to transmit multiple transmission packets at varying power levels (e.g., a base power level and a gradually increasing power level), and the output of the optical transmitter 108 is measured at predetermined time intervals for the multiple transmission packets. In this example, the known transmission packets occur at a known transmission power output level at predetermined time intervals. In one embodiment, the measured value corresponds to the number of photons detected at a predetermined power level within the predetermined time interval. In order to further construct one or more detection models 326, the optical transmitter 108 can be instructed to transmit the transmission packet a predetermined number of times (e.g., hundreds or thousands of times) until the one or more detection models 326 have stabilized and / or until a predetermined threshold (e.g., a predetermined probability) that a plurality of photons emitted at a specific power level in a specific time period represents a transmission packet transmitted by the optical transmitter 108 is reached.
[0081] As briefly described above, the optical photodetector 306 is configured to detect transmissions from the optical transmitter 108 via the optical communication path 116 and / or the network 112. In one embodiment, the optical photodetector 306 detects a plurality of photons at one or more power levels at predetermined time intervals. The optical photodetector 306 can transmit this information to the one or more processors 302, where the processor 302 then uses one or more of the detection models 326 to determine whether the plurality of photons detected by the optical photodetector 306 corresponds to a transmission packet transmitted by the optical transmitter 108. In one embodiment, the bit stream obtained by the processor 302 from the optical photodetector 306 is a compressed bit stream that has been compressed by a power-based compression algorithm used by the optical transmitter 108. Using the one or more detection models 326, the processor 302 identifies the transmission packet and its associated transmission power level.
[0082] In some cases, the transmission from the optical transmitter 108 may need to be down-converted and / or demodulated from the carrier signal. Therefore, the down-conversion module 308 is configured to down-convert the transmission signal from the optical transmitter 108. In one embodiment, the down-conversion module 308 is implemented as a digital down-converter and includes a mixer, a CIC extractor, and one or more FIR filters. The input of the down-conversion module 308 includes the transmission received from the optical transmitter 108 and a local oscillator to calculate the intermediate frequency (e.g., the frequency output by the down-conversion module 308).
[0083] In addition, depending on whether the transmission signal has been modulated with a carrier signal, the output from the down-conversion module 308 (or the optical photodetector 306) is transmitted to the baseband demodulator 310. The baseband demodulator 310 demodulates the transmission from the optical transmitter 108 to obtain a compressed bit stream, which represents data that has been compressed by a power-based compression algorithm. The baseband demodulator 310 can use one or more demodulation techniques to demodulate the transmission signal. Examples of demodulation techniques include, but are not limited to, quadrature phase shift keying (QPSK), binary phase shift keying (BPSK), phase shift keying (PSK), quadrature amplitude demodulation, amplitude and phase shift keying (APSK), and other such demodulation techniques or combinations thereof.
[0084] In some cases, the down-conversion module 308 and / or the baseband demodulator 310 may be bypassed by the optical photodetector 306. For example, the processor 302 may determine that the transmission signal has not been up-converted or that the transmission signal has not been externally modulated. In these cases, the optical photodetector 306 may pass one or more identified transmission packets to the power shaping decoding module 312 for decompression.
[0085] The power shaping decoding module 312 is configured to apply a power-based decompression algorithm to the received bit stream to obtain a decompressed bit stream, which is ultimately transmitted to the computing device 106 via the communication interface 304. The power shaping encoding module 212 can be configured to selectively apply a power-based compression algorithm to one or more portions of the encoded bit stream. The output from the power shaping encoding module 212 is a compressed bit stream in which repeated strings of binary characters in the encoded bit stream and / or redundant bits have been replaced with one or more binary characters, depending on the power-based compression algorithm used by the power shaping encoding module 212. As described above, the one or more replaced binary characters correspond to the transmission power level output by the light source 218.
[0086] The source decoding module 314 is configured to decode the uncompressed bit stream obtained by the power shaping decoding module 312 according to one or more of the decoding algorithms 324. In one embodiment, the source decoding module 314 receives the uncompressed bit stream from the power shaping decoding module 312 and determines which decoding algorithm to apply to the uncompressed bit stream according to the manner in which the uncompressed bit stream is encoded. In another embodiment, the source decoding module 314 is pre-configured with a decoding algorithm to apply to the uncompressed bit stream. For example, the optical receiver 110 and / or the optical transmitter 108 can be configured to apply a source encoding and source decoding algorithm using a shared key. The output generated by the source decoding module 314 is a decoded bit stream, which can be stored as part of the data 322 of the computer storage device 318. In addition, and / or alternatively, the decoded bit stream can be transmitted to another module 306-318 of the optical receiver 110, such as the ECC decoding module 316, in real time or near real time.
[0087] The ECC decoding module 316 is configured to apply an ECC decoding algorithm to the decoded bit stream output by the source decoding module 314. In some cases, source coding may not have been applied to the decompressed bit stream, in which case the ECC decoding module 316 applies the ECC decoding algorithm to the decompressed bit stream obtained by the power shaping decoding module 312. When applying the ECC decoding algorithm, the ECC decoding module 316 determines whether there is an error in one or more bits of the decompressed bit stream. In the presence of an error, the ECC decoding module 316 corrects the bit stream accordingly. In some cases, the ECC decoding module 316 may request the optical receiver 110 to request retransmission of the transmission packet corresponding to the bit with the error. In other cases, the ECC decoding module 316 uses the redundant bits included in the decompressed bit stream to correct the bits. In this way, the optical receiver 110 can correct one or more errors that may occur in the bit stream transmitted by the optical transmitter 108.
[0088] Output sync 320 is configured to synchronize outputs generated by optical photodetector 306. In one embodiment, output sync 320 sends timing information to optical photodetector 306 to ensure that optical photodetector 306 captures transmission packets at predetermined time intervals. In another embodiment, output synchronizer 320 can communicate with processor 302 to ensure that processor 302 uses the correct timing information to determine whether the plurality of photons correspond to transmission packets based on one or more of detection models 326.
[0089] After the transport packets have been decoded and error corrected (if applicable), the transport packets may be stored in computer storage device 318. In one embodiment, the transport packets are stored in random access memory (RAM) until a predetermined number of transport packets have been received and decoded by optical receiver 110. When the predetermined number of transport packets have been received, data blocks representing the transport packets may be transmitted to computing device 106 via communication interface 304.
[0090] Figure 4 The diagram shows a method according to an example embodiment. Figure 1 The distribution 402 of photons detected by the optical receiver 110 corresponds to a transmission signal that has been compressed using a first power-based compression algorithm. Figure 2-3 , the task of the optical transmitter 108 is to power shape the first coded bit stream of “1 1 0 1 1 0 1 1”. In this example, the optical transmitter 108 has determined via the power shaping encoding module 212 that the coded bit stream can be compressed into five (5) transmission packets, where each transmission packet is transmitted in a predetermined time period (e.g., T1, T3, and T5).
[0091] Furthermore, in this example, the power shaping compression algorithm has assigned a power level P to a single binary character (e.g., a binary value of "1"). In this embodiment, the power level P may represent the minimum power output of the light source 218 that can be detected by the optical photodetector 306. In another embodiment, P is established as the transmittable power output of the light source 218.
[0092] Thus, subsequent strings of binary characters are assigned a single binary character having a transmission power level that is a combination of the number of binary characters in the string. In other words, a string of two (2) binary characters is associated with a single binary character having a transmission power of P2, a string of three (3) binary characters is associated with a single binary character having a transmission power of P3, and so on. In some cases, consecutive strings of repeating binary characters are mapped to different power levels, where each power level is a different power level. In these cases, the power levels may be consecutive power levels; in other cases, the power levels may be arbitrary and / or randomly assigned.
[0093] In the event that a 0 is encountered in the encoded bit stream, the power shaping compression algorithm may determine that the light source 218 is emitting no power or minimal power. Figure 4 In the example, a continuous string of binary "1"s is shown as being transmitted at continuously increasing power levels, but in other examples, other mappings between different string lengths of binary "1"s may be used. For example, P2 may represent "1 11" and P3 may represent "1 1". As another example, P3 may represent "1", and P2 may represent "1 1" and P3 may represent "1".
[0094] Thus, when the optical receiver 110 detects a transmission from the optical transmitter 108, the distribution 402 is encountered. In the distribution 402, there is an intermediate distribution in which the detected photons 404-408 have a range of transmission power levels, and there is a greater (e.g., threshold) number of detected photons 414-418 having a transmission power level of P2 or P3, where P2 and P3 are a combination of the minimum detectable power level P, and P3 is greater than P2. In this regard, the processor 302 can use the detection model 326 to determine that there are a first group of photons 414 having a transmission power level of P2 during time period T1, a second group of photons 418 having a transmission power level of P3 during time period T2, and a third group of photons 416 having a transmission power level of P2 during time period T3. The processor 302 further determines that there are two time periods, time period T2 and time period T4, in which the least number of photons 410-412 are detected. Using the detection model, the processor 302 assigns the first group of detected photons 414 as a first transmission, the second group of detected photons 418 as a second transmission, and the third group of photons 416 as a third transmission. Then, using a power-based decompression algorithm, the power shaping decoding module 312 determines that the first transmission packet corresponds to two (2) binary ones, the second transmission packet corresponds to three (3) binary ones, and the third transmission packet corresponds to two (2) binary ones. This decompressed portion of the transmitted bit stream may then be stored in the computer storage device 318 for later retrieval, or it may be transferred to the source decoding module 314 for further decoding.
[0095] Figure 5 The diagram shows a method according to an example embodiment. Figure 1 The distribution 502 of photons detected by the optical receiver 110 corresponds to a transmission signal that has been compressed using a second power-based compression algorithm. Figure 2-3, the task of the optical transmitter 108 is to power shape the second coded bit stream of “1 1 0 1 1 1 1 1 1 1 1 1 1 1 1”. In this example, each transmission packet determined by the power-based compression algorithm is associated with a power level that does not exceed a predetermined transmittable power level of the optical transmitter 108, such as the maximum transmittable power level of the optical transmitter 108. In this example, the predetermined transmit power level output by the optical transmitter 108 is P5, where the power level P corresponds to the minimum detectable power level. Using this power-based compression algorithm, the optical transmitter 108 has determined via the power shaping encoding module 212 that the coded bit stream can be compressed into transmission of four (5) transmission packets, where each transmission packet is transmitted in a predetermined time period (e.g., T1, T3, T4, and T5). Each transmission packet corresponds to a single binary character, and each transmission packet is associated with a corresponding transmission power level. As noted, in some examples, the predetermined transmittable power level can be a threshold power level, which can be the maximum power level at which the transmitter is configured to transmit. In other examples, the threshold power level can be set based on historical past power levels at which the optical transmitter was activated. For example, if the total power level transmitted during a particular time period (e.g., the sum of all power levels) is above a threshold, the threshold power level can be lowered. This can extend the life of the optical transmitter by reducing the amount that the optical transmitter transmits at the maximum power level.
[0096] Based on the power shaping compression algorithm, the optical receiver 110 derives a distribution 502. In the distribution 502, there is an intermediate distribution in which the detected photons have a certain range of transmission power levels, and there is a greater (e.g., threshold) number of detected photons 504, 508, 510, and 512 having a transmission power level greater than P2.
[0097] In this regard, the processor 302 uses the detection model 326 to determine that there is a first group of photons 504 with a transmission power level P2 at time period T1, a second group of photons 508 with a transmission power level P5 at time period T3, a third group of photons 510 with a transmission power level P5 at time period T4, and a fourth group of photons 512 with a transmission power level P2 at time period T5. The processor 302 further determines that there is a time period, namely, time period T2, where the least number of photons 506 are detected.
[0098] Using the detection model, the processor 302 assigns the first group of detected photons 504 as a first transmission, the second group of detected photons 508 as a second transmission, the third group of photons 510 as a third transmission, and the fourth group of photons 512 as a fourth transmission. Then, using a power-based decompression algorithm, the power shaping decoding module 312 determines that the first transmission packet corresponds to two (2) binary ones, the second transmission packet corresponds to five (5) binary ones, the third transmission packet corresponds to five (5) binary ones, and the fourth transmission packet corresponds to two (2) binary ones. The processor 302 then reconstructs the coded bit stream and takes into account the case where the detected power level is minimal. This decompressed portion of the transmitted bit stream can then be stored in the computer storage device 318 for later retrieval, or it can be transmitted to the source decoding module 314 for further decoding.
[0099] Figure 6 The diagram shows a method according to an example embodiment. Figure 1 The distribution 602 of photons detected by the optical receiver 110, wherein the distribution 502 corresponds to a transmission signal that has been compressed using a third power-based compression algorithm. Figure 2-3 , the task of the optical transmitter 108 is to power shape the third encoded bit stream of “1 1 0 1 1 1 1 1 1 1 1 1 1 1”. In this example, the power-based compression algorithm derives an optimal number of transmission packets, wherein each transmission packet is less than a predetermined power level output by the optical transmitter 108, such as a maximum power level output by the optical transmitter 108, and minimizes the number of transmission packets within a predetermined time period. Figure 6 In the illustrated profile 602, the power-based compression algorithm is an optimization algorithm, where the inputs to the optimization algorithm include an upper limit on the transmission power level (e.g., a maximum power level) and a bit stream for encoding. In one embodiment, the optimization algorithm selects an input power to the optical transmitter 108 where the amplification of the input power is within a linear range, which may be the most efficient range. The optimization algorithm groups repeated binary characters (e.g., a '1' bit) such that the power input to the optical transmitter 108 is below a predetermined input threshold. In some cases, as the optical transmitter 108 ages, the input threshold may change based on the linear characteristics of the optical amplification. As Figure 6 The results shown are for a solution determined by a power-based compression algorithm where the power-shaped bit stream includes five transmission packets, with the second transmission packet having the minimum transmission power level. Figure 6 A power-based compression algorithm is used to avoid overdriving the light source 218 and maintain the light source 218 within normal operating parameters.
[0100] In some examples, to achieve this, the transmitter may first packetize a sequence of repeated bits from a bit stream by maximizing the number of bits that can be allocated to each packet while still having a corresponding transmission power of no greater than a threshold transmission power for each packet. The transmission power of each particular transmission packet is determined by applying a mapping of a plurality of bits in each packet, the mapping comprising a plurality of packet sizes and corresponding power levels, wherein the mapping increases the transmission power as the number of bits increases. The transmitter may determine that a first packet of one of the plurality of transmission packets is being transmitted at a first power level corresponding to a threshold transmission power, and a second packet of one of the plurality of transmission packets is being transmitted at a second power level that is less than the threshold level. In response, the transmitter may move one or more bits from the first packet to the second packet such that the power level of the first packet determined by the mapping is reduced, and the second power level of the second packet determined by the mapping is increased such that both the first power level and the second power level are below the threshold transmission power. This more evenly distributes the power levels (and bits) in each transmission to reduce the peak output of the transmitter.
[0101] On the receiver side, the received photons can be decoded and used to create a bit stream. For example, the receiver can detect a first value and a first power level transmitted by a transmitter through an optical communication path in a first time slot, where the first power level is less than a threshold power level. The receiver can then detect the first value and the second power level transmitted by the transmitter through the optical communication path in a second time slot after the first time slot. The second power level can also be less than the threshold power level. The fact that two identical values at two power levels are received consecutively indicates that the transmitter is applying an optimization algorithm to ensure a uniform distribution of bits and / or power levels. The receiver can then use the first power level and the second power level to determine the bit stream of the repeated first value.
[0102] Figure 7 An example embodiment of the present invention is shown in FIG. Figure 1 Method 702 of transmitting a coded bit stream by a light transmitter. Method 702 may be performed by Figure 2-3 The present invention may be performed by one or more components shown in and discussed by reference.
[0103] Initially, the optical transmitter 108 receives data 220 to be transmitted via the light source 218 through one or more optical paths 114-116 and / or the network 112 (operation 704). Thereafter, the source encoding module 208 applies a source encoding algorithm (using one or more of the encoding algorithms 222) to the data 220 to obtain an encoded bit stream (operation 706). The source encoding module may then pass the encoded bit stream to the ECC module 210 to apply an ECC algorithm to the encoded bit stream using one or more of the encoding algorithms 222 (operation 708). In some cases, operation 706 and / or operation 708 may be omitted or bypassed, such as where source encoding is not applied or ECC is not applied to the bit stream.
[0104] After the ECC module 210 has completed its operations, the ECC module 210 may then call the power shaping encoding module 212 to apply a power-based compression algorithm to the encoded bit stream and the redundant bits, wherein the power-based compression algorithm is selected from one or more of the encoding algorithms 222 (operation 710). In one embodiment, the power shaping encoding module 212 is instructed to select a power-based compression algorithm to be applied, such as by receiving an instruction from the computing device 104. In another embodiment, the power shaping encoding module 212 automatically selects which power-based compression algorithm to apply, such as by selecting an algorithm based on the length of the encoded bit stream. As described above, the output of the power shaping encoding module 212 is a compressed bit stream, wherein the compressed bit stream includes data from the encoded bit stream determined by the source encoding module 208 and data for the redundant bits determined by the ECC module 210.
[0105] In one embodiment, the power shaping encoding module 212 then invokes the baseband modulator / filter 214 and / or the upconversion module 216. As described above, the baseband modulator / filter 214 is configured to apply a modulation technique to the compressed bit stream (operation 712). After applying the baseband modulation / filter 214, the resulting signal can then be transmitted to the upconversion module 216 to upconvert the signal from the first input frequency to the second output frequency (operation 716). However, in some cases, the baseband modulator / filter 214 and / or the upconversion module 216 can be bypassed. The resulting signal, whether modulated and / or upconverted, is then transmitted by the light source 218 through one or more optical communication paths. In addition, each transmission packet can be associated with a transmission power level determined by the power shaping encoding module 212, wherein each transmission packet is transmitted at the determined transmission power level.
[0106] Figure 8 An example embodiment of the present invention is shown in FIG. Figure 1 Method 802 of receiving a coded bit stream by an optical receiver. Method 702 may be performed by Figure 2-3The present invention may be performed by one or more components shown in and discussed by reference.
[0107] Initially, the optical receiver 110 receives a transmission from the optical transmitter 108 via one or more optical communication paths 114-117 and / or the network 112 (operation 804). Depending on whether the transmission has been up-converted, the optical receiver 110 may then execute the down-conversion module 308 to down-convert the transmission bit stream from a first frequency to a second frequency (operation 806). As described above, the output from the down-conversion module 308 may then be transmitted to the baseband demodulator 310, which demodulates the encoded signal (e.g., the power-shaped, compressed bit stream) from the carrier signal (operation 808). In some cases, the down-conversion module 308 and / or the baseband demodulator 310 may be bypassed, in which case the received transmission signal may be transmitted to the power shaping decoding module 312.
[0108] The one or more processors 302 may then identify and / or determine whether the transmission signal includes one or more transmission packets (operation 810). In one embodiment, the one or more processors 302 determine whether the transmission signal includes one or more transmission packets by applying a detection model. As described above, the detection model may be developed using one or more machine learning techniques and multiple transmissions performed by the optical transmitter 108. The detection model informs the one or more processors 302 whether a particular set of photons having a determined range of power levels over a predetermined time period indicates a transmission packet transmitted by the optical transmitter 108. Figure 4-6 As shown, there may be situations where a transmission packet is associated with a minimum transmission power or a transmission power level within a minimum power level threshold, and this type of transmission packet may also represent a binary character and / or value (eg, "0" or other binary character).
[0109] Having identified one or more transport packets of the transmission signal and their corresponding transmission power levels, the power shaping decoding module 312 applies a power-based decompression algorithm selected from the decoding algorithm 324 to decompress the one or more transport packets (operation 812). Figure 4-6 As shown, the power shaping decoding module 312 is configured to determine the number of binary characters associated with the transport packet based on the power level at which the transport packet is transmitted. As previously described, the power shaping decoding module 312 can select a particular power-based decompression algorithm based on the detection model 326 used by the processor 302. In another embodiment, the power shaping decoding module 312 receives instructions regarding which power-based decompression module to use. The output from the shaping decoding module 312 is a bit stream (e.g., an encoded bit stream) that has been source encoded by the source encoding module 208, along with one or more redundant bits.
[0110] The ECC decoding module 316 then determines whether to perform error correction control on the encoded bit stream (e.g., the bit stream output by the power shaping decoding module 312) based on one or more redundant bits included in the bit stream (operation 814). Thereafter, the source decoding module 314 applies a source decoding algorithm to the encoded bit stream to obtain an initial bit stream corresponding to the data 220 previously stored by the optical transmitter 108 (operation 816). In one embodiment, the source decoding module 314 is instructed to select a source decoding algorithm from the decoding algorithms 324. In another embodiment, the optical receiver 110 and the optical transmitter 108 are configured to select the same source encoding and / or source decoding algorithm. The output from the source decoding module 314 is decoded data, which can be stored in the computer storage device 318 and / or transmitted to the computing device 106 via the communication interface 304 (operation 818). In addition, there may be situations and / or embodiments where ECC decoding and / or source decoding are not applied to the received transmission signal. For example, in the case where the transmission signal has not been source encoded or the bit stream has not been ECC encoded, the optical receiver 110 may not perform source decoding and / or ECC decoding on the received transmission signal.
[0111] Fig. 9 A method for determining a use according to an example embodiment is illustrated. Figure 1 Method 902 for determining an optimal number of transmission packets to be sent by optical transmitter 106. Method 902 may be performed by Figure 2-3 The present invention may be performed by one or more components shown in and discussed by reference.
[0112] Initially, the processor 204 and / or the power shaping encoding module 212 determines a maximum transmission power output of the light source 218 (operation 904). Additionally, and / or alternatively, the maximum transmission power output may be provided via instructions from the computing device 104. The power shaping encoding module 212 then identifies one or more sequences of repeating binary characters in the bit stream (operation 906). For example, the power shaping encoding module 212 may identify one or more repeating binary characters output by the source encoding module 208 and / or the ECC encoding module 210. The power shaping encoding module 212 then determines the number of transmission packets that may be sent that represent a repeating string of binary characters if each transmission packet may have a maximum transmission power level of the maximum transmission power level output by the light source 218 (operation 908).
[0113] The power shaping encoding module 212 then applies a partitioning algorithm to the encoded bit stream, wherein the inputs to the partitioning algorithm include the bit stream, the maximum transmission power level that can be output by the light source 218, and the number of transmission packets when each transmission packet can be assigned the maximum transmission power level of the light source 218 (operation 910). In one embodiment, the number of packets determined in operation 908 is used as a lower bound that the partitioning algorithm attempts to achieve and / or approximate (e.g., obtain a value within a predetermined threshold of the number of transmission packets). An example of a partitioning algorithm that can be applied to the encoded bit stream using the aforementioned inputs is one in which an optimization algorithm selects an input power to the optical transmitter 108 where the amplification of the input power is within a linear range, which may be the most efficient range. The optimization algorithm groups repeated binary characters (e.g., '1' bits) such that the power input to the optical transmitter 108 is below a predetermined input threshold. In some cases, as the optical transmitter 108 ages, the input threshold may change according to the linear characteristics of the optical amplification. Once the optimal number of transmission packets and the corresponding transmission power level are determined, the power shaping encoding module 212 compresses the encoded bit stream to obtain a compressed bit stream for transmission to the optical receiver 110.
[0114] Fig.10 A method 1002 for determining whether a transmission packet corresponds to a plurality of binary characters according to an example embodiment is illustrated. The method 1002 may be performed by Figure 2-3 The present invention may be performed by one or more components shown in and discussed by reference.
[0115] Initially, the processor 302 and / or the power shaping decoding module 312 identifies one or more transmission packets transmitted by the optical transmitter 108 (operation 1004). As described above, the processor 302 may apply one or more detection models 326 to identify the transmission packets and their corresponding transmission power levels (operation 1006). The power shaping decoding module 328 may then compare the determined power levels of the transmission packets of the compressed bit stream with the power levels of the uncompressed transmission packets (operation 1008). This comparison is performed to determine whether a particular transmission packet represents more than one binary character.
[0116] In the event that the power shaping decoding module 328 determines that the power level of the transport packet of the compressed bit stream is greater than the power level of the uncompressed transport packet (e.g., the "yes" branch of operation 1010), the power shaping decoding module 328 determines that the transport packet represents a plurality of binary characters (operation 1012). The power shaping decoding module 328 may apply a power-based decompression algorithm to the transport packet to obtain the plurality of binary characters. Alternatively, in the event that the power shaping decoding module 328 determines that the power level of the transport packet of the compressed bit stream is less than or equal to the power level of the uncompressed transport packet (e.g., the "no" branch of operation 1010), the power shaping decoding module 328 determines that the transport packet represents a single binary character.
[0117] In this way, the optical transmitter 108 and the optical receiver 110 communicate using a power-based compression algorithm and a power-based decompression algorithm. This approach has a variety of technical benefits. For example, one technical benefit is that the transmission rate of the optical communication path is increased without having to physically change the optical communication path to accommodate the additional throughput. Another technical benefit is that the power-based compression algorithm can be applied to traditional transmission equipment without adding additional transmission hardware or modifying existing transmission hardware, because the power-based compression algorithm focuses on mapping binary characters to transmission power levels supported by the transmission equipment. Therefore, the disclosed system and method provide improvements to the field of optical communications, especially improvements to the way data is efficiently transmitted through optical communication paths.
[0118] Certain embodiments are described herein as including logic or multiple components, modules, or mechanisms. A module may constitute a software module (e.g., code included on a machine-readable medium or machine-readable storage device) or a hardware module. A "hardware module" is a tangible unit that is capable of performing certain operations and can be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a stand-alone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that runs to perform certain operations as described herein.
[0119] In some embodiments, the hardware module can be implemented mechanically, electronically, or any suitable combination thereof. For example, the hardware module may include a dedicated circuit or logic that is permanently configured to perform certain operations. For example, the hardware module may be a dedicated processor, such as an FPGA or an ASIC. The hardware module may also include a programmable logic or circuit that is temporarily configured by software to perform certain operations. For example, the hardware module may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, the hardware module becomes a specific machine (or a specific component of a machine) tailored specifically for performing the configured functions, and is no longer a general-purpose processor. It should be understood that the decision to implement the hardware module mechanically, in a dedicated and permanently configured circuit, or in a temporarily configured circuit (e.g., configured by software) may be driven by cost and time considerations.
[0120] Therefore, the phrase "hardware module" should be understood to include a tangible entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a specific manner or perform certain operations described herein. As used herein, a "hardware-implemented module" refers to a hardware module. Considering an embodiment in which a hardware module is temporarily configured (e.g., programmed), each hardware module does not need to be configured or instantiated at any one time instance. For example, when a hardware module includes a general-purpose processor that is configured to be a special-purpose processor by software, the general-purpose processor can be configured as different special-purpose processors (e.g., including different hardware modules) at different times. The software configures one or more specific processors accordingly, for example, to constitute a specific hardware module at one time instance and to constitute different hardware modules at different time instances.
[0121] Hardware modules can provide information to other hardware modules and receive information from other hardware modules. Therefore, the described hardware modules can be considered to be communicatively coupled. In the case where multiple hardware modules exist simultaneously, communication can be achieved by signal transmission between two or more hardware modules (e.g., through appropriate circuits and buses). In an embodiment where multiple hardware modules are configured or instantiated at different times, communication between these hardware modules can be achieved, for example, by storing and retrieving information in a memory structure accessible to multiple hardware modules. For example, a hardware module can perform an operation and store the output of the operation in a memory device to which it is communicatively coupled. Another hardware module can then access the memory device later to retrieve and process the stored output. The hardware module can also initiate communication with an input or output device, and can operate on a resource (e.g., a collection of information).
[0122] The various operations of the example methods described herein may be performed, at least in part, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Such processors, whether temporarily or permanently configured, may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, a "processor-implemented module" refers to a hardware module implemented using one or more processors.
[0123] Similarly, the methods described herein may be implemented at least in part by a processor, wherein one or more specific processors are examples of hardware. For example, at least some operations of a method may be performed by one or more processors or processor-implemented modules. In addition, one or more processors may also be operable to support the execution of related operations in a "cloud computing" environment or as "software as a service" (SaaS). For example, at least some operations may be performed by a group of computers (as an example of a machine including a processor), which may be accessed through a network (e.g., the Internet) and one or more appropriate interfaces (e.g., APIs).
[0124] The execution of certain operations may be distributed among processors, not only residing in a single machine, but also deployed across multiple machines. In some example embodiments, the processor or processor-implemented modules may be located in a single geographic location (e.g., in a home environment, an office environment, or a server farm). In other example embodiments, the processor or processor-implemented modules may be distributed across multiple geographic locations.
[0125] In some embodiments, the modules, methods, applications, etc. described in conjunction with the various embodiments described herein are implemented in the context of a machine and associated software architecture. The following section describes a representative architecture suitable for use with the disclosed embodiments.
[0126] Software architectures are used in conjunction with hardware architectures to create devices and machines that are tailored for specific purposes. For example, a specific hardware architecture coupled with a specific software architecture will create a mobile device, such as a mobile phone, a tablet device, etc. A slightly different hardware and software architecture might produce a smart device for the "Internet of Things," while another combination produces a server computer for use in a cloud computing architecture. Not all combinations of such software and hardware architectures are presented here, as one skilled in the art can readily understand from the disclosure included herein how to implement the subject matter of the present invention in different contexts.
[0127] Fig.11 1 is a block diagram illustrating components of a machine 1100 capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium or a machine-readable storage device) and executing any one or more of the methods discussed herein, according to some example embodiments. Specifically, Fig. 9 A diagrammatic representation of a machine 1100 in the example form of a computer system is shown in which instructions 1116 (e.g., software, programs, applications, applet, application programs, or other executable code) may be executed to cause the machine 1100 to perform any one or more of the methodologies discussed herein. For example, the instructions 1116 may cause the machine 1100 to perform Figure 7-10 Additionally or alternatively, instruction 1116 may implement Figure 2-3 One or more of the components of the present invention. Instructions 1116 convert a general non-programmed machine 1100 into a specific machine 1100 that is programmed to perform the functions described and illustrated in the manner described. In alternative embodiments, the machine 1100 operates as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1100 can operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1100 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a PDA, or any machine capable of sequentially or otherwise executing instructions 1116 specifying the actions to be taken by the machine 1100. In addition, although only a single machine 1100 is shown, the term "machine" should also be considered to include a collection of machines 1100 that execute instructions 1116 individually or jointly to perform any one or more of the methods discussed herein.
[0128] The machine 1100 may include a processor 1110, a memory / storage device 1130, and an I / O component 1150, which may be configured to communicate with each other, for example, via a bus 1102. In an example embodiment, the processor 1110 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1112 and a processor 1114 that may execute instructions 1116. The term "processor" is intended to include multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") that may execute instructions 1116 simultaneously. Although Fig. 9 Multiple processors 1110 are shown, and the machine 1100 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core process), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.
[0129] The memory / storage 1130 may include a memory 1132, such as a main memory or other memory storage, and a storage unit 1136, both of which are accessible by the processor 1110, such as via the bus 1102. The storage unit 1136 and the memory 1132 store instructions 1116 that embody any one or more of the methods or functions described herein. The instructions 1116 may also reside, completely or partially, within the memory 1132, within the storage unit 1136, within at least one of the processors 1110 (e.g., within a cache memory of the processor), or any suitable combination thereof during execution by the machine 1100. Thus, the memory 1132, the storage unit 1136, and the memory of the processor 1110 are examples of machine-readable media.
[0130] As used herein, "machine-readable medium" includes machine-readable storage devices capable of temporarily or permanently storing instructions 1116 and data, and may include, but are not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage (e.g., erasable programmable read-only memory (EEPROM)), and / or any suitable combination thereof. The term "machine-readable medium" should be deemed to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) capable of storing instructions 1116. The term "machine-readable medium" should also include any medium or combination of multiple media that are considered to include instructions (e.g., instructions 1116) that are executed by a machine (e.g., machine 1100), such that the instructions, when executed by one or more processors (e.g., processor 1110) of machine 1100, cause machine 1100 to perform any one or more of the methods described herein. Therefore, "machine-readable medium" refers to a single storage device or device, as well as a "cloud-based" storage system or storage network that includes multiple storage devices or devices. The term "machine-readable medium" does not include the signal itself.
[0131] Input / output (I / O) components 1150 may include a variety of components to receive input, provide output, generate output, transmit information, exchange information, capture measurements, and the like. The specific I / O components 1150 included in a particular machine will depend on the type of machine. For example, a portable machine such as a mobile phone will likely include a touch input device or other such input mechanism, while a headless server machine will likely not include such a touch input device. It should be understood that I / O components 1150 may include Figure 8Many other components are not shown in the figure. The I / O components 1150 are grouped according to function only to simplify the following discussion and the grouping is by no means limiting. In various example embodiments, the I / O components 1150 may include output components 1152 and input components 1154. The output components 1152 may include visual components (e.g., displays such as plasma display panels (PDPs), light emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), acoustic components (e.g., speakers), tactile components (e.g., vibration motors, resistance mechanisms), other signal generators, etc. The input components 1154 may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touch pads, trackballs, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens that provide position and / or touch force or touch gestures, or other tactile input components), audio input components (e.g., microphones), etc.
[0132] In further example embodiments, the I / O component 1150 may include a biometric component 1156, a motion component 1158, an environmental component 1160, or a positioning component 1162, among other components. For example, the biometric component 1156 may include a component for detecting expressions (e.g., hand expressions, facial expressions, vocal expressions, body postures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The motion component 1158 may include an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), and the like. Environmental component 1160 may include, for example, an illumination sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor that detects concentrations of hazardous gases to ensure safety or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. Positioning component 1162 may include a position sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure from which altitude can be derived), an orientation sensor component (e.g., a magnetometer), and the like.
[0133] A variety of technologies may be used to implement communications. I / O components 1150 may include a communications component 1164 operable to couple machine 1100 to network 1180 or device 1170 via coupling 1182 and coupling 1172, respectively. For example, communications component 1164 may include a network interface component or another suitable device that interfaces with network 1180. In further examples, communications component 1164 may include a wired communications component, a wireless communications component, a cellular communications component, a near field communications (NFC) component, a wireless communications ... Components (e.g. Low Energy), Device 1170 may be another machine or any of a variety of peripheral devices (eg, a peripheral device coupled via USB).
[0134] In addition, the communication component 1164 can detect an identifier or include a component operable to detect an identifier. For example, the communication component 1164 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting a one-dimensional barcode such as a universal product code (UPC) barcode, a multi-dimensional barcode such as a Quick Response (QR) code, an Aztec code, a Data Matrix, a Dataglyph, a MaxiCode, a PDF416, an Ultra Code, a UCCRSS-2D barcode, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying an audio signal of a tag). In addition, various information can be derived via the communication component 1164, such as location via Internet Protocol (IP) geolocation, location information ... Positioning via signal triangulation, positioning via detection of NFC beacon signals that can indicate a specific location, and the like.
[0135] In various example embodiments, one or more portions of network 1180 may be an ad hoc network, an intranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, the Internet, a portion of the Internet, a portion of the PSTN, a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, 1180 or a portion of network 1180 may include a wireless or cellular network, and coupling 1182 may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or other type of cellular or wireless coupling. In this example, coupling 1182 may implement any of a variety of types of data transmission technologies, such as single carrier radio transmission technology (lxRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, the third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) network, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), worldwide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other standards defined by various standards development organizations, other remote protocols, or other data transmission technologies.
[0136] Instructions 1116 may be sent or received over network 1180 using a transmission medium via a network interface device (e.g., a network interface component included in communication component 1164) and utilizing any of a number of well-known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, instructions 1116 may be sent or received using a transmission medium via coupling 1172 (e.g., a peer-to-peer coupling) with device 1170. The term "transmission medium" shall be deemed to include any intangible medium capable of storing, encoding, or carrying instructions 1116 for execution by machine 1100, and including digital or analog communication signals or other intangible media to facilitate communication of such software.
[0137] Fig.12 A method 1202 for transmitting data over an optical communication path is illustrated according to an example embodiment. The method 1202 includes an operation 1204 of receiving a bit stream for transmission over the optical communication path.
[0138] The method 1202 includes an operation 1206 of determining that the bitstream includes a continuous sequence of bits having the same value. Operation 1206 may include determining a continuous sequence of bits having the same first value in the bitstream, the sequence having a first size having a maximum number of bits while also having a corresponding first transmission power that does not exceed a threshold transmission power, determining the first transmission power by applying a mapping to the first size, the mapping including a plurality of sequence sizes and corresponding transmission powers, wherein the mapping increases the transmission power as the number of bits increases. The method 1202 may also include determining a second continuous sequence of bits having the same first value in the bitstream, the second sequence having a second size having a maximum number of bits while also having a corresponding second transmission power that is less than a threshold transmission power, determining the transmission power by applying the mapping to the second size, the second transmission power being less than the first transmission power and the second size being less than the first size. The threshold transmission power may be a maximum power at which the light source is configured to transmit.
[0139] Method 1202 includes an operation 1208 of determining a first power level at which to transmit the sequence. In an example, the first power level is determined based on a count of consecutive bits in the sequence, and wherein an increase in the count is mapped to an increase in the power level. In an example, each bit of the sequence is associated with a corresponding power level. The first power level can be based on a combination of corresponding power levels for each value of the sequence.
[0140] Method 1202 includes an operation 1210 of selectively activating a light source at a first power level according to a first modulation scheme to optically transmit the entire sequence by transmitting a single bit in a continuous bit sequence using the first power level. In an example, the energy or time required for operation 1210 is less than the total energy or total time required to activate the light source to individually transmit each bit of the sequence. Operation 1210 may include selectively activating the light source at a second power level according to the modulation scheme to optically transmit the entire second sequence by transmitting a single bit of the first same value using the second power level. Operation 1210 may include modulating a single bit on a carrier using the first power level. The modulation scheme may include quadrature phase shift keying (QPSK), binary phase shift keying (BPSK), phase shift keying (PSK), quadrature amplitude modulation (QAM), amplitude and phase shift keying (APSK), etc. The optical communication path may be an optical fiber. Photons may be transmitted through the optical fiber.
[0141] In an example, count increases are mapped nonlinearly to power increases. In another example, count increases are mapped linearly. For example, the second sequence (longer than the first) corresponds to a higher power level, and the third sequence (longer than the second) corresponds to a higher power level than the second. In this example, the third power level exceeds the second power level by a predetermined amount (and the second power level also exceeds the first power level by a predetermined amount).
[0142] Method 1202 may include receiving a transmitted single bit and reversing the above steps to determine a count of consecutive bits in a sequence based on the power level.The sequence of consecutive bits may be stored in a memory as a bit stream.
[0143] Method 1202 may include the operation of grouping a sequence of bits into a plurality of transmission packets by maximizing the number of bits that can be allocated to each packet while still having a corresponding transmission power of each packet that is not greater than a threshold transmission power, determining the transmission power of each particular packet by applying a mapping of a plurality of bits in each packet, the mapping comprising a plurality of packet sizes and corresponding power levels, wherein the mapping increases the transmission power as the number of bits increases. The operation may include determining that a first packet of one of the plurality of transmission packets is being transmitted at a first power level corresponding to a threshold transmission power, and determining that a second packet of one of the plurality of transmission packets is being transmitted at a second power level that is lower than a threshold level. Bits may be moved from a first packet to a second packet, for example, such that the power level of the first packet determined by the mapping is reduced and the second power level of the second packet determined by the mapping is increased such that both the first power level and the second power level are lower than the threshold transmission power. In this example, operation 1210 may be modified to transmit a single bit at a reduced first power level or a reduced second power level, respectively. In an example, the threshold power may be based on a historical past power level at which a light source was activated. In one example, mapping may include mapping a first number of bits to a first power level, mapping a second number of bits greater than the first number of bits to a second power level greater than the first power level, and mapping a third number of bits greater than the second number of bits to a third power level greater than the second power level.
[0144] Throughout the specification, multiple instances can implement components, operations or structures described as single instances. Although the individual operations of one or more methods are illustrated and described as individual operations, one or more of the individual operations can be performed simultaneously, and it is not necessary to perform these operations in the order shown. The structure and function presented as individual components in the example configuration can be implemented as a combined structure or component. Similarly, the structure and function presented as a single component can be implemented as an individual component. These and other changes, modifications, additions and improvements fall within the scope of this paper theme.
[0145] Although an overview of the inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of the embodiments of the present disclosure. Such embodiments of the inventive subject matter may be referred to herein individually or collectively as the term "the present invention" merely for convenience and without intending to voluntarily limit the scope of the present application to any single disclosure or inventive concept if, in fact, more than one disclosure or inventive concept is disclosed.
[0146] The embodiments described herein are described in sufficient detail to enable those skilled in the art to practice the disclosed teachings. Other embodiments may be used and derived therefrom, so that structural and logical substitutions and changes may be made without departing from the scope of the present disclosure. Therefore, the detailed description should not be construed as limiting, and the scope of the various embodiments is limited only by the appended claims and the full scope of equivalents to which such claims are entitled.
[0147] Example 1 is a method for transmitting data via an optical communication path, the method comprising: receiving a bit stream for transmission via the optical communication path; determining that the bit stream includes a sequence of consecutive bits having the same value; determining a first power level for transmitting the sequence, wherein the first power level is determined based on a count of consecutive bits in the sequence, and wherein an increase in the count is mapped to an increase in the power level; and selectively activating a light source at a first power level according to a first modulation scheme to optically transmit the entire sequence by transmitting a single bit in the sequence of consecutive bits using the first power level.
[0148] In Example 2, the subject matter of Example 1 includes, wherein each bit of the sequence is associated with a corresponding power level; and wherein the first power level is based on a combination of the corresponding power levels of each value of the sequence.
[0149] In Example 3, the subject matter of Examples 1-2 includes determining a second power level associated with a second sequence of consecutive bits having the same value, the second sequence having a higher count of consecutive bits than the sequence, and wherein the second power level is higher than the first power level.
[0150] In Example 4, the subject matter of Example 3 includes determining a third power level associated with a third consecutive bit sequence having the same value, the third power level being higher than the second power level, wherein the third power level is higher than the second power level by a predetermined amount, and wherein the second power level exceeds the first power level by the predetermined amount.
[0151] In Example 5, the subject matter of Examples 1-4 includes, wherein count increments are non-linearly mapped to the power level increases.
[0152] In Example 6, the subject matter of Examples 1-5 includes, wherein energy required to activate the light source at the first power level to transmit the entire sequence is less than a total energy required to activate the light source to individually transmit each bit of the sequence.
[0153] In Example 7, the subject matter of Examples 1-6 includes, wherein a time required to activate the light source at the first power level to transmit the entire sequence is less than a total time required to activate the light source to individually transmit each bit of the sequence.
[0154] Example 8 is a system for transmitting data via an optical communication path, the system comprising: a hardware processor; and a computer-readable storage device having computer-executable instructions stored thereon, which, when executed by the hardware processor, configure the system to: receive a bit stream for transmission via the optical communication path; determine that the encoded bit stream includes a continuous sequence of bits having the same value; determine a first power level for transmitting the sequence, wherein the first power level is determined based on a count of continuous bits in the sequence, and wherein an increase in the count is mapped to an increase in the power level; and selectively activate a light source at a first power level according to a first modulation scheme to optically transmit the entire sequence by transmitting a single bit in the continuous bit sequence using the first power level.
[0155] In Example 9, the subject matter of Example 8 includes, wherein each value of the sequence is associated with a corresponding power level; and wherein the first power level is based on a combination of the corresponding power levels of each value of the sequence.
[0156] In Example 10, the subject matter of Examples 8-9 includes, wherein the instructions further configure the system to determine a second power level associated with a second sequence of consecutive bits having the same value, the second sequence having a higher count of consecutive bits than the sequence, and wherein the second power level is higher than the first power level.
[0157] In Example 11, the subject matter of Example 10 includes, wherein the instructions further configure the system to determine a third power level associated with a third consecutive bit sequence having the same value, the third power level being higher than the second power level, wherein the third power level is higher than the second power level by a predetermined amount, and wherein the second power level exceeds the first power level by the predetermined amount.
[0158] In Example 12, the subject matter of Examples 8-11 includes, wherein count increments are non-linearly mapped to the power level increases.
[0159] In Example 13, the subject matter of Examples 8-12 includes, wherein energy required to activate the light source at the first power level to transmit the entire sequence is less than a total energy required to activate the light source to individually transmit each bit of the sequence.
[0160] In Example 14, the subject matter of Examples 8-13 includes, wherein a time required to activate the light source at the first power level to transmit the entire sequence is less than a total time required to activate the light source to individually transmit each bit of the sequence.
[0161] Example 15 is a system for transmitting data via an optical communication path, the system comprising: a device for receiving a bit stream for transmission via the optical communication path; a device for determining that the encoded bit stream includes a continuous sequence of bits having the same value; a device for determining a first power level for transmitting the sequence, wherein the first power level is determined based on a count of consecutive bits in the sequence and wherein an increase in the count is mapped to an increase in the power level; and a device for selectively activating a light source at a first power level according to a first modulation scheme to optically transmit the entire sequence by transmitting a single bit in the continuous bit sequence using the first power level.
[0162] In Example 16, the subject matter of Example 15 includes, wherein each value of the sequence is associated with a corresponding power level; and wherein the first power level is based on a combination of the corresponding power levels of each value of the sequence.
[0163] In Example 17, the subject matter of Examples 15-16 includes means for determining a second power level associated with a second sequence of consecutive bits having the same value, the second sequence having a higher count of consecutive bits than the sequence, and wherein the second power level is higher than the first power level.
[0164] In Example 18, the subject matter of Example 17 includes an apparatus for determining a third power level associated with a third consecutive bit sequence having the same value, the third power level being higher than the second power level, wherein the third power level is higher than the second power level by a predetermined amount, and wherein the second power level exceeds the first power level by a predetermined amount.
[0165] In Example 19, the subject matter of Example 18 includes, wherein count increments are mapped non-linearly to power level increases.
[0166] In Example 20, the subject matter of Examples 15-19 includes, wherein energy required to activate the light source at the first power level to transmit the entire sequence is less than a total energy required to activate the light source to individually transmit each bit of the sequence.
[0167] Example 21 is a method for receiving data via an optical communication path, the method comprising: receiving a transmission comprising one or more photons at a first power level in a first time slot; identifying a first value of the one or more photons; determining a count of bits corresponding to the first value based on the first power level, wherein an increase in the count is mapped to an increase in the power level; creating a continuous bit sequence having the first value, the sequence comprising a plurality of bits corresponding to the count; and storing the continuous bit sequence as a bit stream in a memory.
[0168] In Example 22, the subject matter of Example 21 includes, wherein identifying the first value of the one or more photons includes applying a detection model.
[0169] In Example 23, the subject matter of Example 22 includes, wherein the detection model is a machine learning model trained using Poisson regression of previous bitstreams and power levels.
[0170] In Example 24, the subject matter of Examples 22-23 includes, wherein the detection model is determined based on other received photons.
[0171] In Example 25, the subject matter of Examples 21-24 includes, wherein count increments are mapped non-linearly to power level increases.
[0172] In Example 26, the subject matter of Examples 21-25 includes, wherein each bit of the sequence is associated with a corresponding power level, and wherein the first power level is based on a combination of the corresponding power levels for each bit of the sequence.
[0173] In Example 27, the subject matter of Examples 21-26 includes determining a second sequence of consecutive bits received in a transmission associated with a second power level, the second sequence having a higher count of consecutive bits than the sequence, and wherein the second power level is higher than the first power level.
[0174] Example 28 is a system for receiving data via an optical communication path, the system comprising: a hardware processor; and a computer-readable storage device having computer-executable instructions stored thereon, which, when executed by the hardware processor, configures the system to: receive a transmission comprising one or more photons at a first power level in a first time slot; identify a first value of the one or more photons; determine a count of bits corresponding to the first value based on the first power level, wherein an increase in the count is mapped to an increase in the power level; create a continuous bit sequence having the first value, the sequence comprising a plurality of bits corresponding to the count; and store the continuous bit sequence as a bit stream in a memory.
[0175] In Example 29, the subject matter of Example 28 includes, wherein the instructions to configure the system to identify the first value of the one or more photons include instructions to apply a detection model.
[0176] In Example 30, the subject matter of Example 29 includes, wherein the detection model is a machine learning model trained using Poisson regression of previous bitstreams and power levels.
[0177] In Example 31, the subject matter of Examples 29-30 includes, wherein the detection model is determined based on other received photons.
[0178] In Example 32, the subject matter of Examples 28-31 includes, wherein count increments are non-linearly mapped to power level increases.
[0179] In Example 33, the subject matter of Examples 28-32 includes, wherein each bit of the sequence is associated with a corresponding power level, and wherein the first power level is based on a combination of the corresponding power levels for each bit of the sequence.
[0180] In Example 34, the subject matter of Examples 28-33 includes, wherein the instructions configure the system to determine a second sequence of consecutive bits received in a transmission associated with a second power level, the second sequence having a higher count of consecutive bits than the sequence, and wherein the second power level is higher than the first power level.
[0181] Example 35 is a system for receiving data via an optical communication path, the system comprising: a device for receiving a transmission comprising one or more photons at a first power level in a first time slot; a unit for identifying a first value of the one or more photons; a unit for determining a count of bits corresponding to the first value based on the first power level, wherein an increase in the count is mapped to an increase in the power level; a unit for creating a continuous bit sequence having the first value, the sequence comprising a plurality of bits corresponding to the count; and a unit for storing the continuous bit sequence as a bit stream in a memory.
[0182] In Example 36, the subject matter of Example 35 includes, wherein the means for identifying the first value of the one or more photons comprises means for applying the detection model.
[0183] In Example 37, the subject matter of Example 36 includes, wherein the detection model is a machine learning model trained using Poisson regression of previous bitstreams and power levels.
[0184] In Example 38, the subject matter of Examples 36-37 includes, wherein the detection model is determined based on other received photons.
[0185] In Example 39, the subject matter of Examples 35-38 includes a unit for determining a second power level associated with a second received transmission of a group of one or more photons; a unit for comparing the second power level to the first power level; and a unit for performing a bit count determination in response to a determination that the first power level exceeds the second power level.
[0186] In Example 40, the subject matter of Examples 35-39 includes, wherein each bit of the sequence is associated with a corresponding power level, and wherein the first power level is based on a combination of the corresponding power levels for each bit of the sequence.
[0187] Example 41 is a method for transmitting data via an optical communication path, the method comprising: receiving a bit stream for transmission via the optical communication path; determining a continuous bit sequence having the same first value in the bit stream, the sequence having a first size having a maximum number of bits while also having a corresponding first transmission power that does not exceed a threshold transmission power, the first transmission power being determined by applying a mapping to the first size, the mapping comprising a plurality of sequence sizes and corresponding transmission powers, wherein the mapping increases the transmission power as the number of bits increases; and selectively activating a light source at a first power level according to a modulation scheme to optically transmit the entire sequence by transmitting a single bit of the first value using the first transmission power.
[0188] In Example 42, the subject matter of Example 41 includes determining a second sequence of consecutive bits having the same first value in a bit stream, the second sequence having a second size having a maximum number of bits while also having a corresponding second transmission power less than a threshold transmission power, the transmission power being determined by applying a mapping to the second size, the second transmission power being less than the first transmission power and the second size being less than the first size; and selectively activating a light source at a second power level according to a modulation scheme to optically transmit the entire second sequence by transmitting a single bit having the first same value using the second power level.
[0189] In Example 43, the subject matter of Examples 41-42 includes, wherein the threshold transmission power is a maximum power that the light source is configured to transmit.
[0190] In Example 44, the subject matter of Examples 41-43 includes, wherein the mapping includes an increase in power level that is non-linearly related to an increase in sequence size.
[0191] In Example 45, the subject matter of Examples 41-44 includes, wherein selectively activating the light source at the first power level according to the modulation scheme comprises modulating a single bit on a carrier wave using the first power level.
[0192] In Example 46, the subject matter of Examples 41-45 includes, wherein the modulation scheme is one of: quadrature phase shift keying (QPSK), binary phase shift keying (BPSK), phase shift keying (PSK), quadrature amplitude modulation (QAM), or amplitude and phase shift keying (APSK).
[0193] In Example 47, the subject matter of Examples 41-46 includes, wherein the optical communication path is an optical fiber, and wherein selectively activating the optical source at the first power level according to the modulation scheme includes transmitting photons across the optical fiber.
[0194] In Example 48, the subject matter of Examples 41-47 includes wherein a time required to activate the light source at a first power level to optically transmit the entire sequence according to the modulation scheme is less than a total time required to activate the light source to individually transmit each bit of the sequence.
[0195] Example 49 is a system for transmitting data via an optical communication path, the system comprising: a hardware processor; and a computer-readable storage device having computer-executable instructions stored thereon, which, when executed by the hardware processor, configure the system to: receive a bit stream for transmission via the optical communication path; determine a sequence of consecutive bits having the same first value in the bit stream, the sequence having a first size with a maximum number of bits while also having a corresponding first transmission power that does not exceed a threshold transmission power, the first transmission power being determined by applying a mapping to the first size, the mapping comprising multiple sequence sizes and corresponding transmission powers, wherein the mapping increases the transmission power as the number of bits increases; and selectively activating a light source at a first power level according to a modulation scheme to optically transmit the entire sequence by transmitting a single bit of the first value using the first transmission power.
[0196] In Example 50, the subject matter of Example 49 includes, wherein the system is further configured to: determine a second sequence of consecutive bits having the same first value in a bit stream, the second sequence having a second size having a maximum number of bits while also having a corresponding second transmission power less than a threshold transmission power, the transmission power being determined by applying a mapping to the second size, the second transmission power being less than the first transmission power and the second size being less than the first size; and selectively activating a light source at a second power level according to a modulation scheme to optically transmit the entire second sequence by transmitting a single bit having the first same value using the second power level.
[0197] In Example 51, the subject matter of Examples 49-50 includes, wherein the threshold transmission power is a maximum power that the light source is configured to transmit.
[0198] In Example 52, the subject matter of Examples 49-51 includes, wherein the mapping includes an increase in power level that is non-linearly related to an increase in sequence size.
[0199] In Example 53, the subject matter of Examples 49-52 includes, wherein selectively activating the light source at the first power level according to the modulation scheme includes modulating a single bit on a carrier wave using the first power level.
[0200] In Example 54, the subject matter of Examples 49-53 includes, wherein the modulation scheme is one of: quadrature phase shift keying (QPSK), binary phase shift keying (BPSK), phase shift keying (PSK), quadrature amplitude modulation (QAM), or amplitude and phase shift keying (APSK).
[0201] In Example 55, the subject matter of Examples 49-54 includes, wherein the optical communication path is an optical fiber, and wherein selectively activating the optical source at the first power level according to the modulation scheme includes transmitting photons across the optical fiber.
[0202] In Example 56, the subject matter of Examples 49-55 includes, wherein a time required to activate the light source at a first power level to optically transmit the entire sequence according to the modulation scheme is less than a total time required to activate the light source to individually transmit each bit of the sequence.
[0203] Example 57 is at least one non-transitory machine-readable medium, comprising instructions for transmitting data via an optical communication path, which instructions, when executed by a hardware processor, cause the hardware processor to: receive a bit stream for transmission via the optical communication path; determine a sequence of consecutive bits having the same first value in the bit stream, the sequence having a first size having a maximum number of bits while also having a corresponding first transmission power that does not exceed a threshold transmission power, the first transmission power being determined by applying a mapping to the first size, the mapping comprising a plurality of sequence sizes and corresponding transmission powers, wherein the mapping increases the transmission power as the number of bits increases; and selectively activate a light source at a first power level according to a modulation scheme to optically transmit the entire sequence by transmitting a single bit of the first value using the first transmission power.
[0204] In Example 58, the subject matter of Example 57 includes, wherein the instructions further configure the system to: determine a second sequence of consecutive bits having the same first value in the bit stream, the second sequence having a second size having a maximum number of bits while also having a corresponding second transmission power less than a threshold transmission power, the transmission power being determined by applying a mapping to the second size, the second transmission power being less than the first transmission power and the second size being less than the first size; and selectively activating the light source at a second power level according to a modulation scheme to optically transmit the entire second sequence by transmitting a single bit having the first same value using the second power level.
[0205] In Example 59, the subject matter of Examples 57-58 includes, wherein the threshold transmission power is a maximum power that the light source is configured to transmit.
[0206] In Example 60, the subject matter of Examples 57-59 includes, wherein the mapping includes an increase in power level that is non-linearly related to an increase in sequence size.
[0207] Example 61 is a method for receiving data at a receiving device through an optical communication path, the method comprising: determining a first value and a first power level transmitted by a transmitter through the optical communication path in a first time slot based on a first group of one or more received photons, the first power level being a threshold power level; determining a first value and a second power level transmitted by the transmitter through the optical communication path in a second time slot after the first time slot and based on a second group of one or more received photons, the second power level not exceeding the threshold power level; creating a first bit sequence of repeated values of the first value, including multiple repeated first values, a count of the number of first values determined based on a mapping of the first power level to the count, the mapping including multiple received power levels and corresponding counts of the number of repeated values, wherein as the received power level increases, the mapping increases the number of repeated values; creating a second bit sequence of repeated values of the first value including a second number of repeated values based on the mapping and the second power level; combining the first bit sequence and the second bit sequence into a bit stream; and storing the bit stream in a memory.
[0208] In Example 62, the subject matter of Example 61 includes, wherein determining the first value and the first power level comprises applying one or more detection models to the first group of one or more received photons, the detection model being a Poisson regression model.
[0209] In Example 63, the subject matter of Example 62 includes, wherein at least one of the one or more detection models is configured to detect a value at a power level above a threshold power level.
[0210] In Example 64, the subject matter of Examples 61-63 includes, wherein the memory is a random access memory (RAM).
[0211] In Example 65, the subject matter of Examples 61-64 includes, wherein the bit sequence is a binary bit sequence and the repeating value is a binary value of 1.
[0212] In Example 66, the subject matter of Examples 61-65 includes, wherein the one or more received photons are received via an optical communication path, the optical communication path comprising an optical fiber.
[0213] In Example 67, the subject matter of Examples 61-66 includes, wherein the mapping includes an increase in power level that is non-linearly related to an increase in sequence size.
[0214] Example 68 is a system for receiving data at a receiving device through an optical communication path, the system comprising: a hardware processor; a computer-readable storage device having computer executable instructions stored thereon, which, when executed by the hardware processor, configure the system to: determine a first value and a first power level transmitted by a transmitter through the optical communication path in a first time slot based on a first group of one or more received photons, the first power level being a threshold power level; determine a first value and a second power level transmitted by the transmitter through the optical communication path in a second time slot after the first time slot and based on a second group of one or more received photons, the second power level not exceeding the threshold power level; create a first bit sequence of repeated values of the first value, including multiple repeated first values, a count of the number of first values determined based on a mapping of the first power level to the count, the mapping including multiple received power levels and corresponding counts of the number of repeated values, wherein as the received power level increases, the mapping increases the number of repeated values; create a second bit sequence of repeated values of the first value including a second number of repeated values based on the mapping and the second power level; combine the first bit sequence and the second bit sequence into a bit stream; and store the bit stream in a memory.
[0215] In Example 69, the subject matter of Example 68 includes, wherein determining the first value and the first power level comprises applying one or more detection models to the first group of one or more received photons, the detection model being a Poisson regression model.
[0216] In Example 70, the subject matter of Example 69 includes, wherein at least one of the one or more detection models is configured to detect a value at a power level above a threshold power level.
[0217] In Example 71, the subject matter of Examples 68-70 includes, wherein the memory is a random access memory (RAM).
[0218] In Example 72, the subject matter of Examples 68-71 includes, wherein the bit sequence is a binary bit sequence and the repeating value is a binary value of 1.
[0219] In Example 73, the subject matter of Examples 68-72 includes, wherein the one or more received photons are received via an optical communication path, the optical communication path comprising an optical fiber.
[0220] In Example 74, the subject matter of Examples 68-73 includes, wherein the mapping includes an increase in power level that is non-linearly related to an increase in sequence size.
[0221] Example 75 is at least one non-transitory machine-readable medium comprising instructions for receiving data at a receiving device through an optical communication path, which, when executed by a hardware processor, causes the hardware processor to: determine a first value and a first power level transmitted by a transmitter through the optical communication path in a first time slot based on a first group of one or more received photons, the first power level being a threshold power level; determine a first value and a second power level transmitted by the transmitter through the optical communication path in a second time slot after the first time slot and based on a second group of one or more received photons, the second power level not exceeding the threshold power level; create a first bit sequence of repeated values of the first value, including multiple repeated first values, a count of the number of first values determined based on a mapping of the first power level to the count, the mapping including multiple received power levels and corresponding counts of the number of repeated values, wherein as the received power level increases, the mapping increases the number of repeated values; create a second bit sequence of repeated values of the first value including a second number of repeated values based on the mapping and the second power level; combine the first bit sequence and the second bit sequence into a bit stream; and store the bit stream in a memory.
[0222] In Example 76, the subject matter of Example 75 includes, wherein determining the first value and the first power level comprises applying one or more detection models to the first group of one or more received photons, the detection model being a Poisson regression model.
[0223] In Example 77, the subject matter of Example 76 includes, wherein at least one of the one or more detection models is configured to detect a value at a power level above a threshold power level.
[0224] In Example 78, the subject matter of Examples 75-77 includes, wherein the memory is a random access memory (RAM).
[0225] In Example 79, the subject matter of Examples 75-78 includes, wherein the bit sequence is a binary bit sequence and the repeating value is a binary value of 1.
[0226] In Example 80, the subject matter of Examples 75-79 includes, wherein the one or more received photons are received via an optical communication path, the optical communication path comprising an optical fiber.
[0227] Example 81 is a method for transmitting data via an optical communication path, the method comprising: receiving a bit stream for transmission via the optical communication path; determining a first bit sequence in the bit stream comprising a plurality of consecutive identical first values; grouping the bit sequence into a plurality of transmission packets by maximizing the number of bits that can be allocated to each packet while the corresponding transmission power of each packet is not greater than a threshold transmission power, the transmission power of each particular packet being determined by applying a mapping of the number of bits in each packet, the mapping comprising a plurality of packet sizes and corresponding power levels, wherein the mapping increases the transmission power as the number of bits increases; determining a first packet among the plurality of transmission packets to be transmitted at a first power level corresponding to the threshold transmission power , and a second packet of one of the plurality of transmission packets is transmitted at a second power level less than a threshold level; moving bits from the first packet to the second packet so that the power level of the first packet determined by the mapping is reduced, while the second power level of the second packet determined by the mapping is increased, so that the first power level and the second power level are below a threshold transmission power; selectively activating a light source at a first power level according to a modulation scheme to optically transmit the entire first packet by transmitting a single bit of the same first value at the reduced first power level; and selectively activating a light source at an increased second power level according to the modulation scheme to optically transmit the entire second packet by transmitting a single bit of the same first value at the second power level.
[0228] In Example 82, the subject matter of Example 81 includes, wherein the threshold power is a maximum power configured for transmission.
[0229] In Example 83, the subject matter of Examples 81-82 includes, wherein the threshold power level is less than a maximum power configured for the transmission.
[0230] In Example 84, the subject matter of Examples 81-83 includes, wherein the method includes determining the threshold power based on historical past power levels at which the light source was activated.
[0231] In Example 85, the subject matter of Examples 81-84 includes, wherein the mapping maps a first number of bits to a first power level, maps a second number of bits greater than the first number of bits to a second power level greater than the first power level, and maps a third number of bits greater than the second number of bits to a third power level greater than the second power level.
[0232] In Example 86, the subject matter of Examples 81-85 includes, wherein the modulation scheme is one of: quadrature phase shift keying (QPSK), binary phase shift keying (BPSK), phase shift keying (PSK), quadrature amplitude modulation (QAM), or amplitude and phase shift keying (APSK).
[0233] In Example 87, the subject matter of Examples 81-86 includes, wherein the optical communication path is an optical fiber and wherein selectively activating the optical source at the first power level according to the modulation scheme includes transmitting photons across the optical fiber.
[0234] In Example 88, the subject matter of Examples 81-87 includes, wherein a time required to activate the light source at the first power level to transmit the entire first packet is less than a total time required to activate the light source to individually transmit each bit of the first packet.
[0235] Example 89 is a system for transmitting data via an optical communication path, the system comprising: a hardware processor; and a computer-readable storage device having computer-executable instructions stored thereon, which, when executed by the hardware processor, configure the system to: receive a bit stream for transmission via the optical communication path; determine a first bit sequence in the bit stream comprising a plurality of consecutive identical first values; group the bit sequence into a plurality of transmission packets by maximizing the number of bits that can be allocated to each packet while the corresponding transmission power of each packet is not greater than a threshold transmission power, the transmission power of each particular packet being determined by applying a mapping of the number of bits in each packet, the mapping comprising a plurality of packet sizes and corresponding power levels, wherein the mapping increases the transmission power as the number of bits increases; determine the number of bits in the plurality of transmission packets. A first packet of a plurality of transmission packets is transmitted at a first power level corresponding to a threshold transmission power, and a second packet of a plurality of transmission packets is transmitted at a second power level less than the threshold level; bits are moved from the first packet to the second packet so that the power level of the first packet determined by the mapping is reduced, while the second power level of the second packet determined by the mapping is increased so that the first power level and the second power level are lower than the threshold transmission power; a light source is selectively activated at the first power level according to a modulation scheme to optically transmit the entire first packet by transmitting a single bit of the same first value at the reduced first power level; and the light source is selectively activated at the increased second power level according to the modulation scheme to optically transmit the entire second packet by transmitting a single bit of the same first value at the second power level.
[0236] In Example 90, the subject matter of Example 89 includes, wherein the threshold power is a maximum power configured for transmission.
[0237] In Example 91, the subject matter of Examples 89-90 includes, wherein the threshold power level is less than a maximum power configured for transmission.
[0238] In Example 92, the subject matter of Examples 89-91 includes, wherein the method includes determining the threshold power based on historical past power levels at which the light source was activated.
[0239] In Example 93, the subject matter of Examples 89-92 includes, wherein the mapping maps a first number of bits to a first power level, maps a second number of bits greater than the first number of bits to a second power level greater than the first power level, and maps a third number of bits greater than the second number of bits to a third power level greater than the second power level.
[0240] In Example 94, the subject matter of Examples 89-93 includes, wherein the modulation scheme is one of: quadrature phase shift keying (QPSK), binary phase shift keying (BPSK), phase shift keying (PSK), quadrature amplitude modulation (QAM), or amplitude and phase shift keying (APSK).
[0241] In Example 95, the subject matter of Examples 89-94 includes, wherein the optical communication path is an optical fiber and wherein selectively activating the optical source at the first power level according to the modulation scheme includes transmitting photons across the optical fiber.
[0242] In Example 96, the subject matter of Examples 89-95 includes, wherein a time required to activate the light source at the first power level to transmit the entire first packet is less than a total time required to activate the light source to individually transmit each bit of the first packet.
[0243] Example 97 is at least one non-transitory machine-readable medium comprising instructions for transmitting data via an optical communication path, which, when executed by a hardware processor, causes the hardware processor to: receive a bit stream for transmission via the optical communication path; determine a first bit sequence in the bit stream comprising a plurality of consecutive identical first values; group the bit sequence into a plurality of transmission packets by maximizing the number of bits that can be allocated to each packet while the corresponding transmission power of each packet is not greater than a threshold transmission power, the transmission power of each particular packet being determined by applying a mapping of the number of bits in each packet, the mapping comprising a plurality of packet sizes and corresponding power levels, wherein the mapping increases the transmission power as the number of bits increases; determine a first packet of the plurality of transmission packets to correspond to the threshold value; The method comprises the steps of: transmitting a first power level of a first value transmission power and transmitting a second packet of one of a plurality of transmission packets at a second power level less than a threshold level; moving bits from the first packet to the second packet so that the power level of the first packet determined by the mapping is reduced and the second power level of the second packet determined by the mapping is increased so that the first power level and the second power level are lower than the threshold transmission power; selectively activating a light source at the first power level according to a modulation scheme to optically transmit the entire first packet by transmitting a single bit of the same first value at the reduced first power level; and selectively activating the light source at the increased second power level according to the modulation scheme to optically transmit the entire second packet by transmitting a single bit of the same first value at the second power level.
[0244] In Example 98, the subject matter of Example 97 includes, wherein the threshold power is a maximum power configured for transmission.
[0245] In Example 99, the subject matter of Examples 97-98 includes, wherein the threshold power level is less than a maximum power configured for transmission.
[0246] In Example 100, the subject matter of Examples 97-99 includes, wherein the method includes determining the threshold power based on historical past power levels at which the light source was activated.
[0247] Example 101 is a method for receiving data through an optical communication path at a receiving device, the method comprising: determining a first value and a first power level transmitted by a transmitter through the optical communication path in a first time slot based on a first group of one or more received photons, the first power level being less than a threshold power level; determining a first value and a second power level transmitted by the transmitter through the optical communication path in a second time slot after the first time slot based on a second group of one or more received photons, the second power level being less than the threshold power level; creating a first bit sequence of repeated values of the first value, including a plurality of repeated first values, a count of the number of the first value determined based on a mapping of the first power level to the count, the mapping including a plurality of received power levels and corresponding counts of the number of repeated values, wherein the mapping increases the number of repeated values as the received power level increases; creating a second bit sequence of repeated values of the first value including a second count of the number of repeated values based on the mapping and the second power level; combining the first bit sequence and the second bit sequence into a bit stream; and storing the bit stream in a memory.
[0248] In Example 102, the subject matter of Example 101 includes, wherein determining the first value and the first power level comprises applying one or more detection models to the first group of one or more received photons, the detection model being a Poisson regression model.
[0249] In Example 103, the subject matter of Example 102 includes, wherein one of the one or more detection models is configured to determine a value at a power level above a threshold power level.
[0250] In Example 104, the subject matter of Examples 101-103 includes, wherein the memory is a random access memory (RAM).
[0251] In Example 105, the subject matter of Examples 101-104 includes, wherein the bit sequence is a binary bit sequence and the repeating value is a binary value of 1.
[0252] In Example 106, the subject matter of Examples 101-105 includes, wherein the one or more received photons are received via an optical communication path, the optical communication path comprising an optical fiber.
[0253] In Example 107, the subject matter of Examples 101-106 includes, wherein the first power level and the second power level are the same power level.
[0254] Example 108 is a system for receiving data at a receiving device through an optical communication path, the system comprising: a hardware processor; a computer-readable storage device having computer-executable instructions stored thereon, which, when executed by the hardware processor, configure the system to: determine a first value and a first power level transmitted by a transmitter through the optical communication path in a first time slot based on a first group of one or more received photons, the first power level being less than a threshold power level; determine a first value and a second power level transmitted by the transmitter through the optical communication path in a second time slot after the first time slot based on a second group of one or more received photons, the second power level being less than the threshold power level; create a first bit sequence of repeated values of the first value, including multiple repeated first values, a count of the number of the first value determined based on a mapping of the first power level to the count, the mapping including multiple received power levels and corresponding counts of the number of repeated values, wherein the mapping increases the number of repeated values as the received power level increases; create a second bit sequence of repeated values of the first value including a second count of the number of repeated values based on the mapping and the second power level; combine the first bit sequence and the second bit sequence into a bit stream; and store the bit stream in a memory.
[0255] In Example 109, the subject matter of Example 108 includes, wherein determining the first value and the first power level comprises applying one or more detection models to the first group of one or more received photons, the detection model being a Poisson regression model.
[0256] In Example 110, the subject matter of Example 109 includes, wherein one of the one or more detection models is configured to determine a value at a power level above a threshold power level.
[0257] In Example 111, the subject matter of Examples 108-110 includes, wherein the memory is a random access memory (RAM).
[0258] In Example 112, the subject matter of Examples 108-111 includes, wherein the bit sequence is a binary bit sequence and the repeating value is a binary value of 1.
[0259] In Example 113, the subject matter of Examples 108-112 includes, wherein the one or more received photons are received via an optical communication path, the optical communication path comprising an optical fiber.
[0260] In Example 114, the subject matter of Examples 108-113 includes, wherein the first power level and the second power level are the same power level.
[0261] Example 115 is at least one non-transitory machine-readable medium comprising instructions for receiving data at a receiving device through an optical communication path, which instructions, when executed by a hardware processor, cause the hardware processor to: determine a first value and a first power level transmitted by a transmitter through the optical communication path in a first time slot based on a first group of one or more received photons, the first power level being less than a threshold power level; determine a first value and a second power level transmitted by the transmitter through the optical communication path in a second time slot after the first time slot based on a second group of one or more received photons, the second power level being less than the threshold power level; create a first bit sequence of repeated values of the first value, including multiple repeated first values, a count of the number of the first value determined based on a mapping of the first power level to the count, the mapping including multiple received power levels and corresponding counts of the number of repeated values, wherein the mapping increases the number of repeated values as the received power level increases; create a second bit sequence of repeated values of the first value including a second count of the number of repeated values based on the mapping and the second power level; combine the first bit sequence and the second bit sequence into a bit stream; and store the bit stream in a memory.
[0262] In Example 116, the subject matter of Example 115 includes, wherein determining the first value and the first power level comprises applying one or more detection models to the first set of one or more received photons, the detection model being a Poisson regression model.
[0263] In Example 117, the subject matter of Example 116 includes, wherein one of the one or more detection models is configured to determine a value at a power level above a threshold power level.
[0264] In Example 118, the subject matter of Examples 115-117 includes, wherein the memory is a random access memory (RAM).
[0265] In Example 119, the subject matter of Examples 115-118 includes, wherein the bit sequence is a binary bit sequence and the repeating value is a binary value of 1.
[0266] In Example 120, the subject matter of Examples 115-119 includes, wherein the one or more received photons are received via an optical communication path, the optical communication path comprising an optical fiber.
[0267] Example 121 is at least one machine-readable medium comprising instructions that, when executed by a processing circuit, cause the processing circuit to perform operations to implement any of Examples 1-120.
[0268] Example 122 is an apparatus comprising means for implementing any of Examples 1-120.
[0269] Example 123 is a system implementing any of Examples 1-120.
[0270] Example 124 is a method of implementing any of Examples 1-120.
[0271] As used herein, the term "or" may be interpreted as including or excluding meanings. In addition, multiple instances may be provided as a single instance for the resources, operations, or structures described herein. In addition, the boundaries between various resources, operations, modules, engines, and data storage areas are arbitrary to some extent, and specific operations are shown in the context of a specific illustrative configuration. Other functional allocations may be envisioned and may fall within the scope of various embodiments of the present disclosure. In general, the structures and functions that appear as separate resources in the example configuration may be implemented as combined structures or resources. Similarly, the structures and functions that appear as a single resource may be implemented as separate resources. These and other changes, modifications, additions, and improvements fall within the scope of the embodiments of the present disclosure represented by the appended claims. Therefore, the specification and the drawings are considered to be illustrative rather than restrictive.
Claims
1. A method for receiving data via an optical communication path, the method comprising: receiving a first transmission including one or more photons at a first power level in a first time slot; determining a first count of bits corresponding to the value of the one or more photons based on the first power level, wherein the first count of bits is proportional to the first power level; creating a first sequence of consecutive bits, wherein each bit is equal to the value, the first sequence comprising a number of bits equal to the first count, wherein the number of bits is greater than one; creating a second sequence of consecutive bits, wherein each bit is equal to the value, and wherein the second sequence has a number of bits equal to a second count of bits, the number of bits being greater than one, the second count being for a second transmission of photons at a second power level in a second time slot, the second count of bits being proportional to the second power level; and The first sequence of consecutive bits and the second sequence of consecutive bits are stored as a bit stream in a memory.
2. The method according to claim 1, wherein: Identifying the value of the one or more photons includes applying a detection model.
3. The method according to claim 2, wherein: The detection model is a machine learning model trained using Poisson regression of previous bit streams and power levels.
4. The method according to claim 2, wherein: The detection model is determined based on other received photons.
5. The method according to claim 1, wherein: The first count is non-linearly mapped to the first power level.
6. The method according to claim 1, wherein: Each bit of the first sequence is associated with a corresponding power level, and wherein the first power level is based on a combination of the corresponding power levels for each bit of the first sequence.
7. The method of any of claims 1-6, further comprising determining a third sequence of consecutive bits received in a second transmission associated with a third power level, the third sequence having a higher count of consecutive bits than the second sequence, and wherein, The third power level is higher than the second power level.
8. A system for receiving data via an optical communication path, the system comprising: Hardware processor; as well as a computer-readable storage device having computer-executable instructions stored thereon, which, when executed by the hardware processor, configure the system to: receiving a first transmission including one or more photons at a first power level in a first time slot; determining a first count of bits corresponding to the value of the one or more photons based on the first power level, wherein the first count of bits is proportional to the first power level; creating a first sequence of consecutive bits, wherein each bit is equal to the value, the first sequence comprising a number of bits equal to the first count, wherein the number of bits is greater than one; creating a second sequence of consecutive bits, wherein each bit is equal to the value, and wherein the second sequence has a number of bits equal to a second count of bits, the number of bits being greater than one, the second count being for a second transmission of photons at a second power level in a second time slot, the second count of bits being proportional to the second power level; and The first sequence of consecutive bits and the second sequence of consecutive bits are stored as a bit stream in a memory.
9. The system according to claim 8, wherein: The instructions for configuring the system to identify the value of the one or more photons include instructions for applying a detection model.
10. The system according to claim 9, wherein: The detection model is a machine learning model trained using Poisson regression of previous bit streams and power levels.
11. The system according to claim 9, wherein: The detection model is determined based on other received photons.
12. The system according to claim 8, wherein: The first count is non-linearly mapped to the first power level.
13. The system according to claim 8, wherein: Each bit of the first sequence is associated with a corresponding power level, and wherein the first power level is based on a combination of the corresponding power levels for each bit of the first sequence.
14. The system according to any one of claims 8 to 13, wherein: The instructions configure the system to determine a third sequence of consecutive bits received in a second transmission associated with a third power level, the third sequence having a higher count of consecutive bits than the second sequence, and wherein the third power level is higher than the second power level.
15. A system for receiving data via an optical communication path, the system comprising: means for receiving a first transmission including one or more photons at a first power level in a first time slot; means for determining a first count of bits corresponding to the value of the one or more photons based on the first power level, wherein the first count of bits is proportional to the first power level; means for creating a first sequence of consecutive bits, wherein each bit is equal to the value, the first sequence comprising a number of bits equal to the first count, wherein the number of bits is greater than one; means for creating a second sequence of consecutive bits, wherein each bit is equal to the value, and wherein the second sequence has a number of bits equal to a second count of bits, the number of bits being greater than one, the second count being for a second transmission of photons at a second power level in a second time slot, the second count of bits being proportional to the second power level; and Means for storing said first sequence of consecutive bits and said second sequence of consecutive bits as a bit stream in a memory.
Citation Information
Patent Citations
Multilevel intensity modulation and demodulation system and method
EP2903187A1