Apparatus and method for coded light transmission and reception

文档序号:1174645 发布日期:2020-09-18 浏览:3次 中文

阅读说明:本技术 用于编码光的发射和接收的设备和方法 (Apparatus and method for coded light transmission and reception ) 是由 D·V·R·恩格伦 B·M·范德斯勒伊斯 D·V·阿利亚克赛尤 M·T·厄伦 于 2019-02-11 设计创作,主要内容包括:一种方法包括:接收多个帧,每一帧随着时间的推移在每一帧的不同区域中捕获编码光消息的各部分,该消息包括数据符号的序列;解码该消息的各部分;将这些解码部分放置在各自的消息缓冲区中,每一个消息缓冲区与每一帧内的各自区域之一相关联;基于在消息缓冲区中放置的数据符号,确定在一对或多对所述解码部分之中的每一对所述解码部分之间的数据符号中的一个或多个相移;以及重建该消息,所述重建包括:基于所确定的相移在消息缓冲区中对齐这些解码部分,并将所对齐的消息部分合并到单个缓冲区中。(One method comprises the following steps: receiving a plurality of frames, each frame capturing portions of an encoded light message in different regions of each frame over time, the message comprising a sequence of data symbols; decoding portions of the message; placing the decoded portions in respective message buffers, each message buffer being associated with one of respective areas within each frame; determining one or more phase shifts in the data symbols between each of the decoded portions of one or more pairs of the decoded portions based on the data symbols placed in the message buffer; and reconstructing the message, the reconstructing comprising: the decoded portions are aligned in a message buffer based on the determined phase shifts and the aligned message portions are merged into a single buffer.)

1. A receiving device (104) for receiving a coded light message from a plurality of spatially separated transmitters transmitting one and the same message, wherein different transmitters are configured to transmit phase shifted versions of the coded light message with respect to each other, the receiving device comprising:

an interface configured to receive one or more frames from a camera, each frame capturing, over time, a plurality of respective portions of an encoded light message in a plurality of spatially separated respective regions in each frame, wherein each respective portion originates from a different respective transmitter and is captured in a different spatially separated respective region, and wherein the encoded light message comprises a sequence of data symbols;

a plurality of message buffers (116); and

a decoder (114) configured to:

-decoding the respective portion of the coded light message captured in each frame;

-placing each decoded portion in a respective message buffer (116), wherein each respective message buffer (116) is associated with one of a plurality of respective areas within each frame;

-determining one or more phase shifts in the data symbols between each of the one or more pairs of said two or more decoded portions based on the data symbols placed in the message buffer; and

-reconstructing the encoded light message, wherein the reconstruction comprises: the decoded portions are aligned in a message buffer (116) based on the determined one or more phase shifts, and the aligned message portions are merged into a single message buffer (206).

2. The receiving device (104) of claim 1, wherein the decoder (114) is configured to:

performing the decoding, placing, and determining for a first set of received frames;

wherein the determination of one or more phase shifts comprises: estimating one or more phase shifts based on any correlation between data symbols of two or more decoded portions decoded from the first set of received frames;

verifying the estimated one or more phase shifts by determining whether the data symbols in the corresponding locations in the respective message buffers (116) are identical; and

reconstructing the encoded light message based on the verified one or more phase shifts if the data symbols in the corresponding locations in the respective message buffers (116) are determined to be the same; or

If the data symbols in corresponding locations in the respective message buffers (116) are determined to be non-identical, the performing, estimating, and verifying are repeated for one or more subsequent sets of received frames until the estimated one or more phase shifts are verified.

3. The receiving apparatus (104) of claim 1 or claim 2, wherein the decoder (114) is configured to:

receiving one or more further frames of the encoded light signal included in a plurality of respective regions within each frame, each frame capturing a portion of a second encoded light message within the encoded light signal in a plurality of respective regions;

decoding respective portions of the second encoded light message captured in each frame; and

reconstructing the second encoded optical message by placing the decoded portions in a single message buffer (206), wherein the decoded portions are aligned in the single message buffer (206) based on the previously determined one or more phase shifts.

4. The receiving device (104) according to any of claims 1-3, wherein the receiving device (104) is configured to receive information comprising one or more phase shifts; and

wherein the decoder (114) is configured to: the encoded optical message is reconstructed by aligning decoded portions in a message buffer (116) based on one or more phase shifts in the received information.

5. The receiving apparatus (104) according to any one of claims 1-4, wherein the decoder (114) is configured to:

generating a request to modify at least one phase shift among the one or more phase shifts; and

wherein the receiving device (104) is configured to: the generated request is transmitted to one or more transmitters (102) responsible for transmitting the coded light signal in the received plurality of frames.

6. The receiving device (104) of claim 5, wherein the decoder (114) is configured to:

determining which transmitters of one or more transmitters (102) responsible for transmitting the coded light signal are present in a received frame;

wherein the request to modify at least one phase shift among the one or more phase shifts is based on which of the one or more transmitters are present in the received frame.

7. A method of reconstructing a coded light message from a plurality of spatially separated transmitters transmitting one and the same message, wherein different transmitters are configured to transmit phase shifted versions of the coded light message relative to each other, the method comprising:

receiving one or more frames, each frame capturing respective portions of an encoded optical message over time in a plurality of spatially separated respective regions in each frame, wherein each respective portion originates from a different respective transmitter and is captured in a different spatially separated respective region, wherein the encoded optical message comprises a sequence of data symbols;

decoding respective portions of the encoded light message captured in each frame;

placing each decoded portion in a respective message buffer (116), wherein each respective message buffer (116) is associated with one of a plurality of respective areas within each frame;

determining one or more phase shifts in the data symbols between each of one or more pairs of the two or more decoded portions from corresponding different transmitters based on the data symbols placed in the message buffer; and

reconstructing the encoded light message, wherein the reconstructing comprises: the decoded portions are aligned in a message buffer (116) based on the determined one or more phase shifts, and the aligned message portions are merged into a single message buffer (206).

8. A controller (110) for controlling a plurality of spatially separated transmitters (102), wherein each transmitter (102) is configured to emit a respective illumination for illuminating an environment, wherein each transmitter (102) is configured to emit a respective coded light signal, and wherein the controller (110) is configured to:

causing a first transmitter (102 a) to transmit a first coded light signal comprising a first coded light message;

causing a second transmitter (102 b) to transmit a second coded light signal comprising a second coded light message, wherein the first coded light message and the second coded light message comprise respective sequences of data symbols; and

applying a phase shift in the sequence of data symbols of the first encoded optical message as compared to the sequence of data symbols of the second encoded optical message,

wherein the phase shift is applied such that a sequence of data symbols of the first coded light message is different from a sequence of data symbols of the second coded light message when the first and second coded light messages are transmitted by the first and second transmitters (102 a, 102 b), respectively,

wherein the first coded light message is a cyclic arrangement of the second coded light messages.

9. The controller (110) of claim 8, wherein the controller (110) is configured to:

causing the first transmitter (102 a) and the second transmitter (102 b) to begin transmitting the first encoded light message and the second encoded light message at the same time.

10. The controller (110) according to claim 8 or claim 9, wherein the controller (110) is configured to:

a notification is caused to be transmitted to a receiver (104) of the first and second encoded optical messages including the applied phase shift.

11. The controller (110) according to any one of claims 8-10, wherein the controller (110) is configured to:

receiving a request from a receiver of the first and second encoded optical messages to modify the applied phase shift; and

based on the received request, the applied phase shift is modified.

12. The controller (110) of claim 11, wherein the received request indicates which of the first and second transmitters (102 a, 102 b) are being viewed by the receiver (104),

wherein the controller (110) is configured to: modifying the applied phase shift based on whether one or both of the first and second transmitters (102 a, 102 b) are being viewed by the receiver in accordance with the received indication.

13. A luminaire (102) comprising:

the controller (110) according to any one of claims 8-12; and

one of the transmitters.

14. A method of controlling a plurality of spatially separated transmitters (102), wherein each transmitter (102) is configured to emit a respective illumination for illuminating an environment, wherein each transmitter (102) is configured to emit a respective coded light signal, wherein the method comprises:

causing a first transmitter (102 a) to transmit a first coded light signal comprising a first coded light message;

causing a second transmitter (102 b) to transmit a second coded light signal comprising a second coded light message, wherein the first coded light message and the second coded light message comprise respective sequences of data symbols; and

applying a phase shift in the sequence of data symbols of the first encoded optical message as compared to the sequence of data symbols of the second encoded optical message,

wherein the phase shift is applied such that the order of the data symbols of the first coded light message is different from the order of the data symbols of the second coded light message when the first and second coded light messages are transmitted by the first and second transmitters (102 a, 102 b), respectively,

wherein the first coded light message is a cyclic arrangement of the second coded light messages.

15. A computer program comprising instructions such that, when the computer program is executed on a computing device, the computing device is arranged to carry out the method according to claim 7 or claim 14.

Technical Field

The present invention relates to the communication of coded light signals embedded in light emitted by a lighting device.

Background

Coded optical communication refers to a technology whereby information is conveyed in the form of signals embedded in visible light emitted by a light source. Coded light is sometimes also referred to as Visible Light Communication (VLC).

The signal is embedded by modulating properties of the visible light, typically by modulating intensity, according to any of a variety of suitable modulation techniques. In some of the simplest cases, signal transmission is achieved by modulating the intensity of visible light from each of a plurality of light sources with a monocycle carrier waveform or even a single tone (sinusoidal signal) at a constant predetermined modulation frequency. If the light emitted by each of a plurality of light sources is modulated with a different respective modulation frequency that is unique among those light sources, the modulation frequency can be used as an Identifier (ID) of the respective light source or its light.

An example of such a system can be found, for example, in US granted patent US9742493B2, where US9742493B2 discloses a method and system for issuing LCOM messages by means of luminaires and receiving and creating such messages using an optical receiver, which may take the form of a mobile receiver such as a digital camera of a mobile phone or tablet computer.

In a more complex scheme, a sequence of data symbols may be modulated into the light emitted by a given light source. The symbols are represented by any suitable property of the modulated light, such as amplitude, modulation frequency or phase of the modulation. For example, data may be modulated into the light by means of amplitude keying, e.g. using high and low levels to represent bits or using a more complex modulation scheme to represent different symbols. Another example is frequency keying whereby a given light source is operable to emit on two (or more) different modulation frequencies and transmit a data bit (or more generally a symbol) by switching between the different modulation frequencies. As another possibility, the phase of the carrier waveform may be modulated to encode data, i.e., phase shift keying.

In general, the property modulated can be a property of the carrier waveform modulated into the light, such as its amplitude, frequency, or phase; or alternatively, baseband modulation may be used. In the latter case, there is no carrier waveform, but rather the symbol is modulated into the light as a pattern (pattern) of variations in the brightness of the emitted light. This may for example comprise modulation intensity to represent different symbols, or modulation signature: the spatial ratio of Pulse Width Modulation (PWM) dimming waveforms, or the modulation pulse position (so-called pulse position modulation, PPM). Modulation may involve a coding scheme to map data bits (sometimes referred to as user bits) onto such data symbols. An example is a conventional Manchester code, which is a binary code whereby user bits of value 0 are mapped onto data symbols in the form of low-high pulses and user bits of value 1 are mapped onto data symbols in the form of high-low pulses. Another example encoding scheme is the so-called Ternary Manchester code developed by the applicant.

Based on the modulation, the information in the coded light can be detected using any suitable light sensor. This can be either a dedicated photocell (point detector) or a camera comprising an array of photocells (pixels) and a lens (lens) for forming an image on the array. For example, the camera may be a general purpose camera of a mobile user device such as a smartphone or tablet computer. Camera-based detection of coded light is possible with either a global-shutter (global-shutter) camera or a rolling-shutter (rolling-shutter) camera. For example, rolling shutter readout is typical for mobile CMOS image sensors found in everyday mobile user devices such as smartphones and tablet computers. In a global shutter camera, the entire array of pixels (the entire frame) is captured at the same time, and thus the global shutter camera captures only one time sample of light from a given luminaire per frame. On the other hand, in a rolling shutter camera, a frame is divided into lines (lines) in the form of horizontal lines (row), and the frame is exposed line by line in a time sequence, each line in the sequence being exposed at a time later than the last line. Each row thus captures a sample of the signal at a different time instant. Thus, while rolling shutter cameras are generally a cheaper variety and are considered inferior for purposes such as photography, for purposes of detecting coded light, they have the advantage of capturing more time samples per frame and thus have a higher sampling rate for a given frame rate. Nevertheless, coded light detection can be achieved using either a global shutter or rolling shutter camera, as long as the sampling rate is sufficiently high (i.e., high enough to detect modulation of the coded information) compared to the modulation frequency or data rate.

Coded light is often used to embed signals in light emitted by illumination sources such as everyday light fixtures, e.g. room lighting or outdoor lighting, thus allowing illumination from the light fixtures to be used as a carrier of (double as) information. The light thus comprises a visible illumination contribution (typically the primary use of the light) for illuminating a target environment such as a room and an embedded signal (typically considered as a secondary function of the light) for providing information into the environment. In such cases, the modulation is typically performed at a frequency that is high enough to be beyond human perception or at least such that any visible temporal light artifacts (artifacts) (e.g., flicker and/or strobe artifacts) are weak enough to not be noticeable or at least tolerable to humans. Thus, the embedded signal does not affect the primary lighting function, i.e. so the user only perceives the overall lighting and not the effect of the data being modulated into that lighting. For example, Manchester coding is an example of a dc-free (dc free) code, where the power spectral intensity is zeroed at zero Hertz, with little spectral content at low frequencies, thus reducing visible flicker to a barely visible level. Ternary Manchester is DC-free 2, meaning that: not only is the power spectral density zeroed at zero Hertz, but the gradient of the power spectral density is also zeroed, thus eliminating even further the visible flicker.

Coded light can be used in a wide variety of possible applications. For example, different respective IDs can be embedded in the illumination emitted by each of the luminaires in a given environment, e.g., those in a given building, such that each ID is unique at least within the environment in question. For example, the unique ID may take the form of a unique modulation frequency or a unique sequence of symbols. This in turn can enable any one or more of a number of applications. For example, one application is to provide information from a luminaire to a remote control unit for control purposes, e.g. to provide an ID that distinguishes it from other such luminaires that the remote unit is capable of controlling, or to provide status information about the luminaire (e.g. reporting errors, warnings, temperature, operating time, etc.). For example, the remote control unit may take the form of a mobile user terminal such as a smartphone, tablet computer, smart watch or smart glasses equipped with a light sensor such as a built-in camera. The user can then point the sensor at a particular luminaire or subset of luminaires, such that the mobile device can detect the respective ID(s) from the emitted illumination captured with the sensor, and then use the detected ID(s) to identify the corresponding luminaire(s) in order to control it/them (e.g. via an RF back channel). This provides a user-friendly way for the user to identify which luminaire or luminaires he or she wishes to control. The detection and control may be implemented with a lighting control application or "app" (applet) running on the user terminal.

In another application, coded light may be used in debugging. In this case, the respective IDs embedded in the light from the different luminaires can be used in the commissioning phase to identify the individual illumination contribution from each luminaire.

In another example, by mapping the identifier to a known location of the luminaire or information associated with the location, a location-based function that can be used for navigation or otherwise is identified. In this case, a location database is provided that maps the coded light ID of each luminaire to its respective location (e.g. coordinates on a map or plan) and this database may be made available to the mobile device from a server via one or more networks such as a Wireless Local Area Network (WLAN) or a mobile cellular network, or may even be stored locally on the mobile device. Subsequently, if the mobile device captures an image or images containing light from one or more luminaires, it can detect its ID and use this to look up its location in a location database in order to estimate the location of the mobile device based thereon. This may be achieved, for example, by measuring properties of the received light such as received signal strength, time of flight, and/or angle of arrival and then applying techniques such as triangulation, trilateration, multilateration, or fingerprinting, or simply by assuming that the location of the nearest or only captured luminaire is about the location of the mobile device. In some cases, such information may be combined with information from other sources, such as on-board accelerometers, magnetometers, and the like, to provide more robust results.

The detected location may then be output to the user via the mobile device for navigation purposes, e.g., to display the user's location on a floor plan of a building. Alternatively or additionally, the determined location may be used as a condition for the user to access the location-based service. For example, a user's ability to control lighting (or another utility, such as heating) in a particular zone or region (e.g., a particular room) using his or her mobile device may be conditioned on the location of his or her mobile device being detected as being located within that same zone (e.g., the same room) or possibly within a particular control region associated with the lighting in question. Other forms of location-based services may include, for example, the ability to make or accept location-related payments.

As another example application, the database may map luminaire IDs to location specific information, such as information about special museum exhibits in the same room as the respective one or more luminaires or advertisements to be provided to mobile devices located on specific locations illuminated by the respective one or more luminaires. The mobile device can then detect the ID from the illumination and use this to look up location specific information in a database, e.g. to display this to the user of the mobile device. In a further example, the data content other than the ID can be encoded directly into the illumination so that it can be transmitted to the receiving device without requiring the receiving device to perform a lookup.

Thus, coded light has various commercial applications in homes, offices, or other places, such as personalized lighting control, indoor navigation, and location-based services.

As mentioned above, coded light can be detected using a daily "rolling shutter" type camera as is often integrated in everyday mobile user devices like mobile phones or tablet computers. In a rolling shutter camera, the image capture elements of the camera are divided into a plurality of horizontal lines (i.e., rows) that are sequentially exposed line by line. That is, to capture a given frame, the first line is exposed to light in the target environment, then the next line in the sequence is exposed at a later time, and so on. Each row thus captures a sample of the signal at a different time instant (typically, the pixels from each given row are compressed into a single sample value per row). Typically, the sequence scrolls in rows, e.g., from top to bottom, sequentially across the frame, hence the name "rolling shutter". When used to capture coded light, this means: different rows within the frame capture light at different times and therefore, if the row rate is high enough relative to the modulation frequency, light is captured on different phases of the modulation waveform. Thus, the rolling shutter readout causes the fast temporal light modulation to be converted into a spatial pattern in the row readout direction of the sensor, from which the encoded signal can be decoded.

Since the rolling shutter camera captures each frame sequentially line by line, this means: when a rolling shutter camera is used to capture a coded light signal comprising cyclically repeating messages, each line captures a respective sample of the message, and each frame captures a respective segment (fragment) of the message, each segment consisting of a respective subsequence of samples. For most combinations of frame rate and message repetition period, the frame rate and message duration have no particular relationship to each other. This is desirable because it means: each frame sees a different segment of the message and the signal can then be reconstructed from the different segments. For the skilled person, techniques for "stitching" together this so-called message fragment are known from international patent application publication number WO 2015/121155.

Disclosure of Invention

When the camera captures images of the light source emitting the coded light message, only a small portion of the coded light message is captured in each image frame. For example, in the case of a rolling shutter camera, the footprint of the light source within the frame may cover only a small proportion of the rows in the frame. Therefore, a larger number of frames are required to reconstruct the entire message. This increases the time it takes to reconstruct the message at the receiver. If multiple light sources are transmitting the same coded light message, only the same portion of the coded light message is captured in each frame. This may increase the chance of receiving an error-free message portion, but is of no help to increase the speed of data transfer.

According to a first aspect disclosed herein, there is provided a receiving apparatus for receiving a coded light message from a plurality of spatially separated transmitters transmitting one and the same message, wherein different transmitters are configured to transmit phase shifted versions of the coded light message relative to each other, the receiving apparatus comprising: an interface configured to receive one or more frames from the camera, each frame capturing a plurality of respective portions of the encoded light message in a plurality of spatially separated respective regions in each frame, wherein each respective portion originates from a different respective transmitter and is captured in a different spatially separated respective region, and wherein the encoded light message comprises a sequence of data symbols; a plurality of message buffers; and a decoder configured to: decoding respective portions of the encoded light message captured in each frame; placing each decoded portion in a respective message buffer, wherein each respective message buffer is associated with one of a plurality of respective regions within each frame; determining one or more phase shifts of the data symbols between each of the one or more pairs of the two or more decoded portions based on the data symbols in the message buffer; and reconstructing the encoded light message, wherein the reconstructing comprises: aligning the decoded portions in the message buffer based on the determined one or more phase shifts and merging the aligned message portions into a single message buffer.

The present invention therefore solves the problems of previous systems by using multiple transmitters to transmit one and the same message, but where different transmitters transmit phase shifted versions of the message content relative to each other. Receivers that see more than one transmitter are thus able to receive more message content from these transmitters in a shorter amount of time. Not only is it possible to receive a single message in a shorter amount of time, but the speed of data transfer through the lighting system as a whole is also increased.

In an example, the decoder is configured to search for correlations between data symbols of the decoded portions placed in different message buffers, wherein the searching comprises determining correlations between data symbols of two or more decoded portions.

In an example, the determination of one or more phase shifts is based on a correlation of data symbols in the determined message buffer.

The correlation can be between portions from the same frame and/or different frames.

In an example, the decoder is configured to identify a stop and/or start sequence within the decoded portion in the respective message buffer, wherein the alignment is based on the identified stop and/or start sequence.

In an example, the decoder is configured to: performing the decoding, placing, and determining for a first set of received frames; wherein the determination of one or more phase shifts comprises: estimating one or more phase shifts based on any determined correlation between data symbols of the two or more decoded portions decoded from the received frames of the first set; verifying the estimated one or more phase shifts by determining whether the data symbols in the corresponding locations in the respective message buffers are the same; and reconstructing the encoded optical message based on the verified one or more phase shifts if the data symbols in the corresponding locations in the respective message buffers are determined to be the same; or if the data symbols in corresponding locations in the respective message buffers are determined to be non-identical, repeating the performing, estimating and verifying for one or more subsequent sets of received frames until the estimated one or more phase shifts are verified.

In an example, the decoder is configured to: receiving one or more further frames comprising the encoded optical signal in a plurality of respective regions within each frame, each frame capturing a portion of a second encoded optical message within the encoded optical signal in the plurality of respective regions; decoding respective portions of the second encoded light message captured in each frame; and reconstructing the second encoded optical message by placing the decoded portion in a single message buffer, wherein the decoded portion is aligned in the single message buffer based on the previously determined one or more phase shifts.

In an example, the data symbols are located in corresponding positions if they are located within a threshold of each other in the message buffer.

In an example, a receiving device is configured to receive information comprising one or more phase shifts; and wherein the decoder is configured to: the encoded optical message is reconstructed by aligning the decoded portions in the message buffer based on one or more phase shifts in the received information.

In an example, the decoder is configured to: generating a request to modify at least one of the one or more phase shifts; and wherein the receiving device is configured to transmit the generated request to one or more transmitters responsible for transmitting the encoded optical signal in the received plurality of frames.

In an example, a receiver is configured to communicate with one or more transmitters over a wireless communication channel.

In an example, the decoder is configured to: determining which of the one or more transmitters responsible for transmitting the coded light signal are present in the received frame; wherein the request to modify at least one of the one or more phase shifts is based on which of the one or more transmitters are present in the received frame.

In an example, the receiver includes at least one of: (i) a rolling shutter camera, and (ii) a global shutter camera, each configured to capture one or more frames. When using a rolling shutter camera, each frame is captured as a time series of lines, and each line thus samples the message at a different time. In such a case, the footprint of each light source (transmitter) would cover a respective subset of rows within the frame. Thus, each of the portions of the message is captured with the rolling shutter row of the respective subset.

According to a second aspect disclosed herein, there is provided a method of reconstructing a coded light message from a plurality of spatially separated transmitters transmitting one and the same message, wherein different transmitters are configured to transmit phase shifted versions of the coded light message transmitted in the coded light signal relative to each other, the method comprising: receiving one or more frames, each frame capturing respective portions of an encoded light message in a plurality of spatially separated respective regions in each frame, wherein each respective portion originates from a different respective transmitter and is captured over time in different spatially separated respective regions, wherein the encoded light message comprises a sequence of data symbols; decoding respective portions of the encoded light message captured in each frame; placing each decoded portion in a respective message buffer, wherein each respective message buffer is associated with one of a plurality of respective regions within each frame; determining one or more phase shifts of the data symbols between each of the one or more pairs of the two or more decoded portions based on the data symbols in the message buffer; and reconstructing the encoded light message, wherein the reconstructing comprises: aligning the decoded portions in the message buffer based on the determined one or more phase shifts and merging the aligned message portions into a single message buffer.

According to a third aspect disclosed herein, there is provided a controller for controlling a plurality of spatially separated transmitters, wherein each transmitter is configured to emit a respective illumination for illuminating an environment, wherein each transmitter is configured to emit a respective coded light signal, and wherein the controller is configured to: causing a first transmitter to transmit a first coded light signal comprising a first coded light message; causing a second transmitter to transmit a second coded light signal comprising a second coded light message, wherein the first coded light message and the second coded light message comprise respective sequences of data symbols; and applying a phase shift in the sequence of data symbols of the first encoded optical message as compared to the sequence of data symbols of the second encoded optical message, wherein the phase shift is applied such that the sequence of data symbols of the first encoded optical message is different from the sequence of data symbols of the second encoded optical message when the first and second encoded optical messages are transmitted by the first and second transmitters, respectively, wherein the first encoded optical message is a cyclic arrangement of the second encoded optical message.

In an example, the controller is configured to: causing the first transmitter and the second transmitter to begin transmitting the first encoded light message and the second encoded light message at the same time.

In an example, the controller is configured to: a notification is caused to be transmitted to the receiver of the first and second encoded optical messages including the applied phase shift.

In an example, the controller is configured to: receiving a request from a receiver of the first and second encoded optical messages to modify the applied phase shift; and modifying the applied phase shift based on the received request.

In an example, the received request indicates which of the first and second transmitters are being viewed by the receiver, wherein the controller is configured to: the applied phase shift is modified based on whether one or both of the first and second transmitters are being viewed by the receiver in accordance with the received indication.

In an example, the controller is configured to: receiving an indication of a number of repetitions of the encoded light message required for the receiver to reconstruct a complete encoded light message; and causing the first and second transmitters to transmit the first and second encoded light messages for at least the indicated number of repetitions.

According to a fourth aspect disclosed herein, there is provided a luminaire comprising: a controller as disclosed herein, and one of the transmitters.

According to a fifth aspect disclosed herein, there is provided a method of controlling a plurality of spatially separated transmitters, wherein each transmitter is configured to emit a respective illumination for illuminating an environment, wherein each transmitter is configured to emit a respective coded light signal, wherein the method comprises:

causing a first transmitter to transmit a first coded light signal comprising a first coded light message;

causing a second transmitter to transmit a second coded light signal comprising a second coded light message, wherein the first coded light message and the second coded light message comprise respective sequences of data symbols; and applying a phase shift in the sequence of data symbols of the first encoded light message as compared to the sequence of data symbols of the second encoded light message, wherein the phase shift is applied such that the order of the data symbols of the first encoded light message is different from the order of the data symbols of the second encoded light message when the first and second encoded light messages are transmitted by the first and second transmitters, respectively, wherein the first encoded light message is a cyclic arrangement of the second encoded light message.

According to a sixth aspect disclosed herein, there is provided a computer program comprising instructions such that, when the computer program is executed on a computing device, the computing device is arranged to carry out any of the method steps disclosed herein.

According to a seventh aspect disclosed herein, there is provided a computer program product comprising code embodied on a computer-readable storage and/or downloadable therefrom, and configured so as when run on a processing apparatus comprising one or more processing units to perform operations in accordance with any of the method steps disclosed herein.

According to an eighth aspect disclosed herein, there is provided a lighting system comprising: at least a first transmitter and a second transmitter, wherein each transmitter is configured to emit a respective illumination for illuminating an environment, wherein each transmitter is configured to emit a respective coded light signal; and a controller configured to control at least the first and second transmitters, wherein the controller is configured to: causing a first transmitter to transmit a first coded light signal comprising a first coded light message, causing a second transmitter to transmit a second coded light signal comprising a second coded light message, wherein the first coded light message and the second coded light message comprise respective sequences of data symbols; and applying a phase shift in the sequence of data symbols of the first encoded light message as compared to the sequence of data symbols of the second encoded light message, wherein the phase shift is applied such that the order of the data symbols of the first encoded light message is different from the order of the data symbols of the second encoded light message when the first and second encoded light messages are transmitted by the first and second transmitters, respectively, wherein the first encoded light message is a cyclic arrangement of the second encoded light message.

Drawings

To assist in understanding the present disclosure and to show how embodiments may be put into practice, reference is made, by way of example, to the accompanying drawings, in which:

FIG. 1 schematically shows an example of an environment including an encoded optical communication system;

FIG. 2 schematically shows an example of a timing diagram of a rolling shutter camera in detecting and reconstructing an encoded light message;

fig. 3 schematically illustrates the reconstruction of an encoded light message based on a determined phase shift applied to the transmitted encoded light message;

fig. 4 schematically illustrates the reconstruction of a second encoded light message based on a previously determined phase shift applied to the transmitted encoded light message;

FIG. 5 schematically illustrates an example phase shift profile based on light sources appearing in a view of a receiver;

fig. 6 schematically illustrates an example of a phase shift distribution depending on the infrastructure of the coded optical communication system;

FIG. 7 schematically illustrates an example in which phase shifts have been applied to an encoded optical message on a sub-symbol layer; and

fig. 8 is a schematic representation of a frame captured with a rolling shutter camera.

Detailed Description

With coded light, coding schemes are used to convey data symbols (e.g., bits, nibbles, bytes, etc.) by modulating the light (e.g., by using fast light pulses that vary in position, width, or intensity). The receiving device ("receiver") can take the form of, for example, a photoresistor, a photodiode, or a fast camera. For example, the receiver may be a rolling shutter camera. In another example, the camera may be a global shutter camera. Rolling shutter cameras have the advantage that multiple light sources or effects can be considered and can be sampled at a higher speed (since successive rows are sampled at different time stamps).

In fig. 2(a), a camera captures a frame 200 in which a light source (or light effect) 202 appears. Due to the rolling shutter principle, a fast flash is detected as a series of stripes (strips) with different intensities. These fringes can be interpreted as a series of time-dependent pulses 204. Fig. 2(b) illustrates interpreting multiple frames in this manner, which results in pulse chunks on the timeline. In fig. 2, the frame rate of the camera is indicated by sequential dashed vertical lines. Since the light source (or effect) 202 occupies only a small portion of the sensor/frame surface, the block contains only a small portion of the signal.

When the light sources emit the same sequence of data symbols (lamp identifiers) in a cycle, this means: there is an opportunity to reconstruct the complete coded light message. First, the camera and light source must have differences in sampling speed and synchronization so that different portions of the signal are detected in each frame. Secondly, the different received message parts must have some overlap that can be used to find the correlation at the beginning and end of the blocks. When some bit sequences are identical at the beginning and/or end of the message part, this may indicate: these portions are adjacent. However, this is not always true; false adjacencies can occur when the bit patterns overlap but the portions are not adjacent.

The relative timing of the light source and the sensor also helps to locate the detected portion in the message. This is illustrated in fig. 2c, where the timing for sampling the frame is less than the time for sending the message. This means that: when the message length is known, the detected portion can be located in the message buffer 116, the correlation of the overlapping portion can be verified and all bits of the message can be detected. When the message buffer 116 is filled, the beginning of the message is unknown, but the relative positions of the bits (i.e., the order in the circular buffer) are known. At that moment, the decoder can look in the message for the start and stop sequence 206 and thus find the message or identifier emitted by the lamp in the cycle. The start or stop sequence may for example take the form of a pre/mid/post synchronisation signal or even an idle period; what is relevant is that: which is a symbol, sequence of symbols, or other channel state that deviates from the conventional channel coding used for data.

One problem with previous coded optical communication techniques is that: when the light source (effect) 202 occupies only a small part of the sensor, the signal block is very small and therefore the possible overlap is also very small and the probability of false adjacency increases.

The related problems are: the amount of light occupying the sensor surface of the rolling shutter camera determines the number of decoded bits and thus for small amounts of light, the speed at which a complete message (e.g., light source identifier) is detected is reduced.

When multiple lamps are present, more space is occupied and therefore they can be used to speed up the collection of bits. However, a strategy to distribute the sending of messages must be found to avoid too much overlap in the received message portions. For example, when two light sources are synchronized and read out by the same row of sensors, the received bits are the same.

The inventors have realised that: the speed of reconstructing the encoded light message at the receiver can be increased by transmitting the same encoded light message with two or more light sources and distributing the phase shift across the transmitted encoded light message. As will be explained in detail below, this enables the receiver to reconstruct the message more quickly because different parts of the coded light message are sampled in each frame.

Fig. 1 gives a schematic overview of a system 100 for transmitting and receiving coded light. The system 100 includes a plurality of transmitters 102 and receivers 104. That is, the system 100 includes at least a first transmitter 102a and a second transmitter 102 b. For example, the transmitter 102 may take the form of a light fixture or lighting fixture mounted, for example, on a ceiling or wall of a room or take the form of a floor lamp or outdoor light pole. The receiver 104 may, for example, take the form of a mobile user terminal such as a smart phone, a tablet computer, a laptop computer, a smart watch, or a pair of smart glasses.

The transmitter 102 includes a light source 106 and a driver 108 connected to the light source 106. In the case where the transmitter 102 comprises a luminaire, the light source 106 takes the form of an illumination source (i.e., a lamp) configured to emit illumination on a scale suitable for illuminating an environment, such as a room or outdoor space, so as to allow people to see and/or find objects and/or obstacles within the environment. The illumination source 106 may take any suitable form, such as an LED-based light including a string or array of LEDs, or potentially another form, such as a fluorescent light. The transmitter 102 also comprises a controller 110 coupled to an input of the driver 108 for controlling the light source 106 to be driven via the driver 108. In particular, the controller 110 is configured to control the light source 106 via the driver 108 to modulate the illumination it emits in order to embed the cyclically repeated coded light message. Any suitable known modulation technique may be used to do so. In an embodiment, the controller 110 is implemented in the form of software, wherein the software is stored in a memory of the transmitter 102 and is arranged for execution on a processing device of the transmitter 102 (the memory on which the software is stored comprising one or more storage units employing one or more storage media, such as an EEPROM or a magnetic drive, and the processing device on which the software is run comprising one or more processing units). Alternatively, it is not excluded: some or all of the controller 110 can be implemented in dedicated hardware circuits or configurable or reconfigurable hardware circuits such as a PGA or FPGA.

The receiver 104 includes a camera 112 and a decoder 114 coupled to an input from the camera 112 for receiving images captured with the camera 112. The receiver also includes a plurality of message buffers 116. In an embodiment, the decoder 114 and plurality of message buffers 116 are implemented in software, where the software is stored on a memory of the receiver 104 and is arranged for execution on a processing device of the receiver 104 (the memory on which the software is stored comprising one or more storage elements employing one or more storage media, such as an EEPROM or a magnetic drive, and the processing device on which the software is run comprising one or more processing elements). Alternatively, it is not excluded: some or all of the decoder 114 and message buffer 116 can be implemented in dedicated hardware circuitry or configurable or reconfigurable hardware circuitry such as a PGA or FPGA.

The controller 110 is configured to perform transmit-side operations in accordance with embodiments disclosed herein, and the decoder 114 is configured to perform receive-side operations in accordance with the disclosure herein. Note also that: the controller 110 is not necessarily implemented in the same physical unit as the light source 106 and its driver 108. In an embodiment, the controller 110 may be embedded in the luminaire along with the driver 108 and the light source 106. Alternatively, the controller 110 can be implemented outside the transmitter 102, e.g., on a server or control unit connected to the transmitter 102 via any suitable network or networks (e.g., via the internet or via a local wireless network such as a Wi-Fi or ZigBee, 6LowPAN or Bluetooth network, or via a local wired network such as Ethernet or DMX network). In the case of an external controller, some hardware and/or software may still be provided on the in-vehicle transmitter 102 to help provide a regularly timed signal and thereby prevent jitter, quality of service issues, and the like.

Similarly, the decoder 114 need not be implemented in the same physical unit as the camera 112. In embodiments, the decoder 114 may be incorporated in the same unit, for example together in a mobile user terminal such as a smartphone, a tablet computer, a smart watch or a pair of smart glasses (e.g. implemented in the form of an application or "app" installed on the user terminal). Alternatively, the decoder 114 can be implemented on an external terminal. For example, the camera 112 may be implemented in a first user device such as a dedicated camera unit or a mobile user terminal like a smartphone, a tablet computer, a smart watch or a pair of smart glasses; and the decoder 114 may be implemented on a second terminal, such as a laptop, desktop computer, or server, connected to the camera 112 on the first terminal via any suitable connection or network, e.g., a one-to-one connection such as a serial cable or USB cable, or via any one or more suitable networks such as the Internet or a local wireless network like a Wi-Fi or Bluetooth network, or a wired network like an Ethernet or DMX network.

The following describes a receiver 104 and method for improving the detection of coded optical messages by reconstructing the messages based on the determined phase shifts between the received messages.

To aid in understanding the present invention, an exemplary representation of a frame captured with a rolling shutter camera is shown in FIG. 8. The camera 112 is arranged to capture a series of frames 200 that will contain an image 106' of the light from the light source 106 if the camera is pointed at the light source 106. As discussed, the camera 112 in this example is a rolling shutter camera, which means that: it does not capture each frame 200 all at once (as in a global shutter camera) but instead captures each frame 200 line by line in a sequence of lines 802. That is, each frame 200 is divided into a plurality of rows 802 (the total number of rows is labeled 804 in fig. 8), each row spanning over the frame 200 and being one or more pixels thick (e.g., spanning the width of the frame 200 and one or more pixels high in the case of horizontal rows). The capture process begins by exposing one row 802, then exposing the next row (typically an adjacent row), then exposing the next row, and so on. For example, the capture process may scroll frame 200 from top to bottom, starting with exposing the top row, then exposing the next row starting from the top, then exposing the next row down, and so on. Alternatively, it can scroll from top to bottom or even side to side. Of course, if the camera 112 is included in a mobile or movable device so that it can be oriented in different directions, the orientation of the rows relative to the external reference frame is variable. Thus, as a matter or terminology, the direction perpendicular to the rows in the plane of the frame (i.e., the scrolling direction, also referred to as the row readout direction) will be referred to as the vertical direction; and the direction parallel to the rows in the plane of the frame 200 will be referred to as the horizontal direction.

To capture samples for the detection of an encoded light message, some or all of the individual pixel samples of each given row 802 are combined into a respective combined sample 806 for that row (e.g., only "active" pixels that contribute usefully to the encoded light signal are combined, while the remaining pixels from that row are discarded). The combining may be performed, for example, by integrating or averaging the pixel values or by using any other combining technique. Alternatively, a particular pixel can be taken as a representation of each row. Either way, the samples from each row thus form a time signal that samples the coded light signal at different times, thus enabling the coded light signal to be detected and decoded from the sampled signal. For completeness, in the example of fig. 8, the light source 106 acting as the encoding light transmitter covers only a fractional part (fraction) of the line 802 of each frame 200. In fact, only line 808 in fig. 8 contains pixels that register the intensity variation of the coded light source and thus results in a sample containing useful information. All remaining "lines per frame" 810 and the samples derived therefrom do not contain coded light information related to the source of interest 106.

Note that: multiple light sources/effects may appear on the same row 802 in the frame 200. In this case, there will be a sample 806 combined for each series of pixels belonging to a single light source/effect, and thus there will be multiple combined samples 806 for a single row 802. That is, each row 802 has multiple samples, one for each light source/effect, where each sample is a combination of active pixels that contribute to the coded light signal from the respective light source/effect. For example, if there are two spatially separated light sources captured on the same row 802 of the frame, then there are two spatially separated sets of active pixels. Note that: these combined samples 806 are not combined together, for example by summing. That is, an individual combined sample 806 of the plurality of combined samples 806 on a single row is not subsequently combined with another individual combined sample 806.

When a line 802 is exposed, a sample of that encoded light message portion will be taken if that line covers an area of the frame that contains that portion of the encoded light message. When the next row is exposed at a later time, a subsequent sample of that coded light message portion will be taken, and so on. These samples together form a segment of the message that includes one or more data symbols or portions of data symbols, i.e., more than one fundamental channel symbol, among the data symbols of the message, as will be discussed in more detail below. When all of the lines have been exposed, the portions of the encoded light message in different portions of the frame 200 will be sampled over different sets of lines covering those different regions. The decoder then receives these sampled portions of the encoded optical message.

Fig. 3 shows an example of a receiver 104, e.g., a rolling shutter camera, for capturing images of a plurality of light sources 106, e.g., lights on a ceiling. The decoder 114 of the receiver 104 has an input for receiving a plurality of image frames 200. Each image frame 200 contains portions of the encoded light signal emitted from each light source 106, where each portion is in a respective region of the frame. When the coded light signal comprises a coded light message emitted from a respective light source 106, each frame then comprises a portion of the coded light message in a respective region of the frame. The decoder 114 decodes each portion of the encoded optical message and places the decoded portions in respective message buffers 116. The respective message buffer 116 is associated with an area of the frame in which the respective message was captured. For example, in fig. 3(a), the first light source 106 emits a coded light signal captured in a first region of a first received frame. Decoder 114 decodes the first message portion captured in the first received frame and places the first message portion in first message buffer 116. Similarly, a second message portion decoded from a second region within the first frame is placed in the second message buffer 116. In this example, four of the six light sources 106 are captured in the received frame 200, and thus four portions of four encoded light messages are decoded and placed in different message buffers 116.

In an example, a rolling shutter mechanism is used to capture a plurality of frames 200, with the message bits in the first frame being subsequently decoded from the light stripes in the frames and placed in the respective assigned message buffers 116.

After the first frame, these buffers contain the first message part of the received coded light message, which is indicated in fig. 3 with a striped block. The relationship between the location of the first message portion in the different message buffers 116 is not known at this point. The decoder 114 can search for correlations between the first message portions, or more precisely, the decoder 114 can search for correlations between the data symbols within each first message portion. For example, a correlation between at least two message buffers 116 is searched. This is schematically shown in fig. 3(b), where correlations are searched between the first and second message buffers 116, between the second and third message buffers, and so on. In another example, correlations between message portions in all message buffers 116 are searched.

In this regard, the decoder 114 may determine one or more phase shifts between data symbols between pairs of message portions in the buffer based on the determined correlations of the data symbols. For example, a phase shift between data symbols in the first and second message buffers may be determined. Another phase shift may be determined between the data symbols in the second and third message portions, and so on. In another example, a phase shift between data symbols in the first and third message buffers may be determined. In an example, depending on the determined correlation, a phase shift between data symbols in any possible combination of message buffers 116 may be determined.

Another method for determining phase shift without determining the correlation of the data symbols is by searching for distinctive patterns within the message. For example, if a message is sent out with a specific pattern, e.g., 01001100011100001111, a burst (burst)0110 can be located directly. The same applies to burst 1110. By receiving a number of bursts, the phase shift can be determined.

The distinctive pattern may be a "violate" pattern used for channel coding of the data symbols, as a result of which such a pattern can be easily discernable. For example, one way would be to insert pre/mid/post synchronization signals or even idle periods between messages. The decoded message portions can then be placed and aligned in the message buffer based on these specific symbols/patterns.

Depending on the size of the encoded optical message and/or the phase shift applied to the encoded optical message, decoder 114 may create the encoded optical message by aligning the decoded message portions (and thus the data symbols within the decoded message portions) based on the determined phase shift. The aligned message portions are combined in a single message buffer 206, as shown in fig. 3 (c). For example, if the first frame captures four different portions of the full encoded light message with a 25% phase shift in the data symbols between each successive pair of transmitted messages, the first received frame will capture the full encoded light message.

In some instances, multiple frames 200 are required to enable reconstruction of a complete encoded light message. After each frame is received, the message portions in each region of each frame are decoded and placed in a respective message buffer 116. For example, the cross-hatched blocks in fig. 3(a) represent the message portions received in and decoded from the second received frame. Each decoded message portion is placed in the same message buffer 116 as a previously decoded message portion corresponding to the same region within the previous frame. Similarly, in fig. 3a, the dashed blocks represent the message parts received in and decoded from the third received frame.

The decoder searches for correlations between the data symbols placed in each message buffer 116 on a per frame basis. That is, since each frame is received and message parts are decoded and placed in the message buffer 116, the decoder 114 may search for a correlation between the last decoded message parts placed in the message buffer 116. That is, when the first frame is processed, correlation between symbols decoded from the first frame is searched. Subsequently, when the second frame is processed, correlation between symbols decoded from the second frame is searched. This may be repeated for each subsequent received frame. An example of this is shown in fig. 3 (b). Additionally or alternatively, the decoder 114 may search for correlations between two or more of the decoded message portions placed in each message buffer 116, e.g., between data symbols decoded from the first, second, and third received frames. As discussed above, the correlation between one or more pairs of message buffers 116 may be determined.

Based on the determined correlations of the data symbols, decoder 114 can then determine one or more phase shifts between message portions decoded from the plurality of received frames 200. The decoder 114 can then use the phase shift(s) to align and combine the decoded message portions in a single message buffer 206 to reconstruct the complete encoded optical message, as shown in fig. 3 (c).

As an optional feature, the decoder 114 may search for correlations between data symbols, i.e., decoded message portions of one frame' worth (of) at a time. The decoder 114 may use the correlations to estimate one or more phase shifts between the decoded message portions. A check can then be performed to verify the estimated phase shift(s). For example, the decoder 114 may determine whether the data symbols in the corresponding locations in the message buffer 116 are the same. If the estimated phase shift(s) is verified, the encoded light message is reconstructed. If the estimated phase shift(s) is not verified, decoder 114 searches for a correlation between symbols in the second and subsequently received frames 200 until the estimated phase shift(s) can be verified.

Taking the example of fig. 3, after decoding the first frame, the four message buffers 116 contain the decoded message portion of the first frame value. A first verification is performed on any possible correlation (e.g., overlap) of the first decoded message portions. In this example, there is some correlation between the first decoded message portions. At this point, the phase shift(s) may be known, but the decoder 114 may not be deterministic. As the second and third frames are received, the message buffer 116 contains more data symbols for which correlation can be searched. As more frames 200 are received, the likelihood of determining the correct phase shift(s) increases and thus the estimated phase shift(s) becomes more accurate.

The search means that: searching for overlaps between message portions in different message buffers 116. At that point, the phase shift(s) between the buffers may be assumed. The verification means that: given the assumed shift, it is checked whether all known bits in the corresponding positions in the buffer are equal. If the merging of the message buffers 116 produces a complete message without a difference in the corresponding data symbol positions, the phase shift(s) can be verified. Here, the corresponding position may mean an identical position within the message buffer 116. Alternatively, the corresponding locations may also refer to data symbols that are located within a threshold of each other in the message buffer 116.

Further, note that: the message buffer 116 itself need not be completely filled in order to reconstruct the complete message, as shown in fig. 3 (b).

In some examples, decoder 114 searches for and identifies start/stop or stop/start sequences within the decoded message portions in message buffer 116. This enables the decoder 114 to start aligning the complete encoded light message in the message buffer with the start sequence (i.e., the beginning of the encoded light message).

After reconstructing the first complete encoded light message, the decoder 114 is aware of the phase shift(s) between the light sources 106 captured in the image acquired with the receiver 104. That is, if the decoder 114 knows the phase shift between two message buffers 116, the decoder 114 also knows the phase shift between two light sources 106 captured in two regions within the frame to which those two message buffers 116 are allocated. Subsequently, when the transmitter 102 is controlled to transmit the second encoded light message, the decoder 114 can use the determined phase shift(s) to place the decoded message portion directly in the correct location in the single message buffer 206. This is schematically shown in fig. 4. In this example, rather than placing four decoded message portions in four respective message buffers 116, four decoded message portions are placed in a single message buffer 206. Subsequent frames 200 may then be processed until the message buffer is completely filled (i.e., if the message buffer is not filled after the first frame has been processed).

The advantages of this are: knowing the phase shift(s) between the light sources 106, the decoded message portions from different sampling regions can be placed directly in the message buffer and thus increase the speed of processing the encoded light message. In an example, when the decoder 114 receives a different encoded light message or a portion of a different encoded light message, this can be detected quickly because the data symbols in the newly received message can be compared to the data symbols in the aligned message buffer. Any differences in the compared messages will indicate that: a different coded light message is being received. This enables the message buffer in which newly received messages can be placed to be purged.

As an optional feature, the receiver 104 may be configured to receive the phase shift applied by the light source 106. For example, one or more light sources 106 responsible for receiving the encoded light signal in frame 200 may transmit a notification containing these phase shifts. As another example, a server configured to control the light sources 106 within the lighting system 100 may transmit the notification. In these examples, receiver 104 includes a wired or wireless interface configured to receive information over a wired or wireless communication channel, respectively. The notification may be received, for example, over a Radio Frequency (RF) channel. The decoder 114 may use the received phase shift(s) to properly align the decoded message portions. The decoder 114 may place the decoded message portions directly in the single message buffer 206 based on the received phase shift(s).

As another optional feature, the decoder 114 may generate a request to modify one or more phase shifts applied by the light source 106. The receiver 104 may then transmit the request to one or more of the light sources 106 and/or to a server. For example, the decoder 114 may determine that: the phase shift between two or more light sources 106 creates too much overlap between the data symbols in the received message portion. The decoder 114 may determine the optimal phase shift(s) to be applied across two or more light sources 106 and cause the receiver 104 to transmit a request to the light sources 106 to apply the optimal phase shift(s).

Further, the decoder 114 may also generate a request to modify one or more phase shifts applied by the light sources 106 based on which light sources 106 are present in the received frame 200. The decoder 114 may determine which light sources 106 within the lighting system 100 are being sampled based on the region(s) in the received frame 200 containing the coded light signal. The decoder 114 may cause this information to be transmitted to one or more light sources 106. The light source 106 may apply phase shift(s) based on this information.

Alternatively, the decoder 114 may determine the number of visible light sources 106 based on which light sources 106 are present in the frame 200. The decoder 114 may then determine the optimal phase shift to be applied across those light sources 106 determined to be present. For example, the decoder 114 may determine that: two light sources 106 are present in the received frame 200. The receiver 104 may then transmit a request for the light source 106 to achieve, for example, a 25% or 50% phase shift in the message symbols transmitted between the encoded light messages transmitted by the two light sources 106. This is schematically shown in fig. 5a for a% 0% phase shift. In another example, when four light sources 106 are determined to be present, the receiver 104 may transmit a request such that the light sources 106 achieve, for example, a 25% phase shift, e.g., 0%, 25%, 50%, 75%, between each light source 106. This is schematically shown in fig. 5 b. When the fast sampling global shutter camera 112 is used, there is no rolling shutter phase shift, and the distribution of the encoded light messages indicated in the described example avoids any overlap in the encoded light messages.

In some examples, the receiver 104 operates in a first detection mode to detect which light sources 106 are present in a received frame/view, and then operates in a second detection mode to detect phase-shifted encoded light messages. Detecting which light sources 106 are present in the received frame 200 may be performed by detecting the transmitted light source identifiers, techniques of which are known in the art.

As an option, the decoder 114 may also determine the number of repetitions of the message needed for the decoder 114 to reconstruct the complete message. The receiver 104 may transmit this information to one or more light sources 106 (e.g., those light sources determined to be present in the received frame 200). The receiver 104 may indicate that a greater than minimum number of messages are to be repeated so that the located decoded message portion may be verified by checking for errors.

Note that: when the decoder 114 operates according to the rolling shutter principle, there is also a phase shift when receiving samples in different rows/columns of the sensor. This phase shift can be determined from the timing of the rolling shutter mechanism. The decoder 114 can thus compensate this additional phase shift, for example by subtracting the additional phase shift.

The following describes a controller 110 and method for enabling improved detection of coded light messages at the receiver 104. As described above, the controller 110 is configured to control two or more transmitters 102, wherein each transmitter has one or more light sources 106 for transmitting a coded light signal. The controller 110 is configured to embed the coded light message in the transmitted coded light signal. The controller 110 controls the transmission of the coded light message such that the controller 110 can cause the first and second transmitters to transmit first and second coded light signals containing respective coded light messages. Each coded light message consists of a sequence of data symbols. The controller 110 is also configured to apply a phase shift to a sequence of data symbols of one of the transmitted encoded light messages relative to at least one other transmitted encoded light message. The phase shift is applied such that when two or more encoded light messages are transmitted, the encoded light messages contain different message sequences compared to each other. Further, each of the coded light messages transmitted by each of the transmitters is a cyclic permutation of each other. That is, each message consists of a shifted version of the same data content.

For example, each coded light message may consist of a sequence of ones and zeros. For example, the first coded light message may be [0110101100 ]. The second encoded light message may have a 50% phase shift applied in a cyclic manner. In this case, the second encoded light message would be [0110001101 ]. In a different scenario, a 20% phase shift may be applied resulting in the second encoded optical message being [0001101011 ]. In other words, if the sequence of data symbols of the first coded light message are sequentially shifted one symbol at a time together in a cyclic manner, eventually the first coded light message will correspond to the second coded light message.

In some examples, a phase shift is applied to the first encoded light message such that data symbols of the first encoded light message are shifted by an integer number of data symbols compared to the second encoded light message.

The phase shift may also be applied at the sub-symbol layer, i.e. to a respective unit pulse representing each data symbol (e.g. each data bit). Fig. 7 shows two possible unit pulses in the form of positive and negative "hat" functions. The pulses mapped to data symbols of value 1 are shown on the left-hand side of fig. 7, and the pulses mapped to data symbols of value 0 are shown on the right-hand side of fig. 7. For example, in ternary Manchester code, each unit hat function includes a length of time TCWherein each basic channel period is a data symbol period TDIs half of the length of (T)D=2TC). The three fundamental periods for the respective data symbols are consecutive with the middle of the three being located at the center of the respective data symbol period, such that adjacent first and third fundamental channel periods straddle the beginning and ending boundaries of the data symbol period, spanning fundamental channel period T on either side, respectivelyCHalf of that. In some examples, when applying phase shift on the sub-symbol layerThe phase shift applied to the first coded light message may be a shift of an integer number of fundamental channel symbols relative to the second coded light message.

To create the coded light message to be transmitted, the hat functions of adjacent data symbols are added to each other, i.e. shifted by the time of their respective symbol periods. Because the hat functions overlap across the boundaries between data symbol periods, the functions add in the overlap region between adjacent data symbols.

An example of the resulting sequence of data symbols in the time domain is shown in fig. 7 b. Fig. 7b shows an example of a first coded light message transmitted by a first transmitter. Fig. 7c represents an example of a second encoded light message transmitted by a second transmitter with a 50% phase shift applied to the second encoded light message by the controller 110 compared to the first encoded light message. As shown in fig. 7, the two coded light messages are transmitted with different sequences of symbols, where one coded light message is a cyclic permutation of the other.

While example phase shifts of 25% and 50% have been provided, in other examples one or more of the phase shifts applied may be greater or less than these values.

The advantages of this are: different versions of the same encoded message can be transmitted, which enables the receiver 104 to sample different portions of the same encoded optical message in the same frame. Further advantages are: even when the transmitter 102 is sampled on the same row of receivers 104 (e.g., the same row of rolling shutter cameras 112), different portions of the same coded light message are still received, rather than the same portions as is typically the case.

The one or more phase shifts applied by the controller 110 may be predetermined by the controller 110 or randomly distributed across the transmitter 102. For the transmission of the next set of coded light signals containing different versions of the coded light message, the phase shift applied across transmitter 102 when transmitting the first coded light signal containing the version of the coded light message will be maintained. This enables the receiver 104 to reconstruct different coded optical messages based on the known phase shift.

In some examples, the controller 110 controls each transmitter to transmit its respective coded light message at the same time. That is, the transmission of the encoded optical message is synchronized across the transmitter 102 by synchronizing the transmitter clock. In an alternative example, the transmitter 102 may operate with little clock drift. The controller 110 may reset the clock time of the transmitter 102 if the clock drift reaches a defined threshold.

The potential acceleration achieved by using this technique depends inter alia on the number of luminaires that are typically imaged in a normal use case and their respective offsets at the moment of imaging. As a result, the above reset upon transmission of the request may provide alignment and thereafter provide higher acceleration.

One way of synchronizing the transmission of messages is by using a phase locked loop in combination with a specific light pulse, e.g. a light pulse of a length that is not used in normal (pulse width modulated) communication or illumination. The transmitter can synchronize to the pulses and then pulse with other lamps to effectively speed up the pace (put a pace) in the environment. Furthermore, the receiver can also synchronize on that pulse and adapt its clock based thereon.

As an option, the controller 110 is configured to cause one or more phase shifts applied to the receiver 104 to be transmitted to the receiver 104. For example, the controller 110 may generate an indication containing the phase shift(s). One or more transmitters 102 may be controlled to transmit the indication to a receiver 104. The transmission may be, for example, through a wired or wireless connection. An example of a wireless connection for transmission may be an RF channel.

As an additional or alternative option, the controller 110 may also be configured to: a request is received to modify one or more applied phase shifts before, during, or after transmission of a first instance of the encoded light message. The request may be received at the transmitter from the receiver 104 and subsequently processed by the controller 110. In some examples, the request is first transmitted from the receiver 104 to an intermediate node, such as a central lighting bridge or server, and then forwarded to the controller 110. Based on the received request, the controller 110 may choose to modify the applied phase shift(s). For example, the controller 110 may increase or decrease the relative phase shift in messages transmitted by one or more pairs of transmitters 102.

In some examples, the received request indicates which transmitters 102 are being viewed by the receiver 104, e.g., sampled by the camera 112 of the receiver 104. The received request may indicate which transmitters 102 are prominently viewed, e.g., fully viewed, by the receiver 104. The controller 110 may process the request and modify the applied phase shift based on whether one or more transmitters 102 (e.g., two transmitters 102a and 102 b) are viewed by the receiver 104. For example, three transmitters 102 may be transmitting encoded optical messages with 33% phase shifts relative to each other. The controller 110 can process a request indicating that one of the transmitters 102 is not (significantly) viewed by the receiver 104. The controller 110 can thus modify the phase shift applied across the two transmitters 102 being viewed. For example, the two viewed transmitters 102 may be the controllers 110 transmitting encoded optical messages with 50% phase shift.

As another option, the controller 110 may be configured to receive and process an indication detailing the number of repetitions of the encoded light message needed for the receiver 104 to reconstruct a complete encoded light message. The controller 110 may use this indication to control the number of times one or more of the transmitters 102 transmits their respective messages.

The controller 110 may also introduce redundancy in the encoded optical message based on a parity check scheme, such that a complete encoded optical message can be composed of sub-messages distributed over a number of transmitters 102 that is less than the number currently in view of the receiver. To ensure that the reconstructed message is identical to the original message, it is possible to include a parity amount (parityvolume) with the ratio. The amount of parity enables the receiver 104 to repair (fix) the reconstructed message when the size of the broken segment (e.g., containing errors) is less than the sum of the amount of parity. In this scheme, the ratio of messages transmitted is reserved for parity checking. For example, in a room with six transmitters, to ensure that a complete message can be reconstructed when the receiver 104 only looks at four of the six transmitters 102, one third of each message may be set aside as a parity segment.

Fig. 6 illustrates an example of how the phase shift can be distributed over the transmitter 102 and how the received message portions can be placed in the message buffer 116. The ceiling view shows six transmitters 102 and their orientations. The receiver 104 can have a view of (a part of) this ceiling. All transmitters 102 will send out the same message string and by observing a single lamp with the rolling shutter camera 112, it is possible to detect and align all data symbols of the message. If lamps 0 and 1 are synchronized, the receiver 104 used in view 1 will receive exactly the same data in these rows. Thus, by applying a phase shift that can be derived by the receiver 104, the data symbols detected in regions 0 and 1 can be placed in good relative positions in the message buffer 116 with minimal overlap.

Let T be the time for the transmitter to read the bit in the sensing area (in view 1) and define the moment when the sensor reads out area 0 as time = 0. Assume that a complete message is sent out at time = 8T. If a +1T phase shift is applied for transmitter 1, this means: the sensor in view 1 starts reading message portions 0-1T from zone 0 and message portions 1-2T from zone 1. As the rolling shutter mechanism continues, it begins reading regions 2 and 3 at time 3T. By applying a phase shift of-1T for region 2 and no phase shift for region 3, the following can be concluded: the message part (2-3) T is read from area 2 and the message part (3-4) T is read from area 3. In this case, the sensor reads four blocks of a message or 50% of a message having a length of 8T in one frame. By adapting the timing of the camera sensor in reading the next frame it is also possible to read the other 4 message portions in one frame (start reading region 0 at time n x 8 x T + 4T). The message buffer 116 may not be synchronized with the beginning of the message and therefore the stop/start sequence may have to be searched in the message buffer 116. In this example, the phase shift is made dependent on the orientation of the transmitter 102: a phase shift on +1T is applied in the east direction and a phase shift on-1T is applied in the south direction.

In fig. 2, the receiver 104 is rotated 90 degrees counterclockwise. The same phase shift is applied. Thus, the sensor starts reading regions 2 and 0 (at reference time 0) and reads regions 3 and 1 at time 2T. The phase shift can be derived by the receiver 104 by taking into account the orientation of the sensor. By taking region 0 as a reference at time 0, it can be inferred that: region 2 delivers the end of the (unsynchronized) message at time 0(7-8) T. Regions 3 and 1 deliver message parts (2-3) T and (3-4) T.

In view 3, the receiver 104 has a broader view of the ceiling and therefore more lamps in the view, but the sensor area occupied by these lamps is only half. By defining the readout of region 0 as time =0, it can be inferred that: region 2 is read at time 1.5T and region 4 is read at time 3T. These message portions contain half the number of data symbols. Thus, region 0 delivers (0-0.5) T, and region 1 delivers (1-1.5) T. As the sensor reading continues, it can be seen that: these regions deliver the following data symbols: region 2 (0.5-1) T, region 3 (1.5-2) T, region 4 (1-1.5T), and region 5 (2-2.5) T. The magnitude of the transmitter/light source effect affects the detection area on the sensor and the distance between the lamps determines the readout timing on the sensor. Thus, the geometry of the lighting infrastructure can be taken into account when calculating the phase shift.

It will be appreciated that: the above embodiments have been described by way of example only. For example, as discussed above, while the above examples have been discussed with respect to a rolling shutter camera, frames received at a decoder may also be captured with a different type of camera, such as, for example, a global shutter camera. When a global shutter camera is used, the camera captures the entire frame at the same time and thus captures different portions of the transmitted encoded light message in each region of the frame (due to the applied phase shift). For example, if the phase shift of fig. 5b is applied and the camera captures frames in which the upper left corner of the transmitter is captured, each frame will contain four different parts of the message. Each portion of the message captured in the four regions within the frame will be shifted by 25% with respect to the message portions in the upper or lower regions and also by 25% with respect to the message portions in the right or left regions. In the subsequently captured frame, four different portions of the message will be captured, each of which is shifted by 25% as described above. As a specific example, if the frame rate is twice the bit/signal rate (e.g., Nyquist), successive bits can be found and the message buffer evolves from several places (related to the number of light sources in the frame) to a situation where the message portions of the data symbols begin to overlap and the buffer becomes completely filled. At that moment, the phase shift is known. For the second message, the data symbols can be placed directly in the buffer.

The invention may be particularly beneficial when the message transmitted by the luminaire is a continuously transmitted message of known length, such as a (long) identifier. By having multiple transmitters/luminaires transmitting messages out of synchronization and possibly in a coordinated manner such that the phase offset(s) are staggered and preferably evenly distributed over the message length, a higher speed of identifier detection can be achieved resulting in e.g. faster indoor positioning.

However, a similar scheme may also be used in data transmission scenarios, where packets of known length need to be communicated. In such a scenario, individual packets may be repeated by the luminaire until the packets have been successfully received by the receiver. In such a scenario, the receiver may provide an acknowledgement for successful reception of the packet (e.g., after verification using a checksum), after which the transmitter may continue to transmit the next packet.

Reference has been made herein to data stores for storing data. This may be provided by a single device or by a plurality of devices. Suitable devices include, for example, hard disks and non-volatile semiconductor memories.

Although at least some aspects of the embodiments described herein with reference to the figures comprise computer processes performed in a processing system or processor, the invention also extends to computer programs, particularly computer programs on or in a carrier, adapted for putting the invention into practice. The program may be in the form of non-transitory source code, object code, a code intermediate source and object code such as in partially compiled form, or in any other non-transitory form suitable for use in the implementation of the process according to the invention. The carrier may be any entity or device capable of carrying the program. For example, the carrier may comprise a storage medium, such as a Solid State Drive (SSD) or other semiconductor-based RAM; a ROM, for example, a CD ROM or a semiconductor ROM; magnetic recording media such as floppy disks or hard disks; a general optical storage device; and so on.

In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. A computer program may be stored and/or distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the internet or other wired or wireless telecommunication systems. Any reference signs in the claims shall not be construed as limiting the scope.

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:电子部件安装基板、电池组及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!