GB2520930A - Method for arranging data for their tranmission in block-coded form, and associated transmission method - Google Patents
Method for arranging data for their tranmission in block-coded form, and associated transmission method Download PDFInfo
- Publication number
- GB2520930A GB2520930A GB1320997.8A GB201320997A GB2520930A GB 2520930 A GB2520930 A GB 2520930A GB 201320997 A GB201320997 A GB 201320997A GB 2520930 A GB2520930 A GB 2520930A
- Authority
- GB
- United Kingdom
- Prior art keywords
- data
- control data
- location
- blocks
- coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0072—Error control for data other than payload data, e.g. control data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0079—Formats for control data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
A method for arranging data for the wireless transmission of a data stream in the form of coding-blocks 300, the method comprising inserting control data 301 at a first location of the data stream, and inserting a copy of the same control data inserted at a second location of the data stream such that the second location is spaced apart from the first location by at least an interval 415 based on the size of the coding blocks 300 used for the upcoming transmission of the data. The interval 415 is sized so that the inserted control data and their copy are located in different coding blocks when transmitted. The arranging method may be used in a method of transmitting data to a video display system such as a multi-projector system, where the control data is critical to display the video images. The repetition of such critical messages allows the transmission to be resilient to some errors without the need for extra latency.
Description
I
Method for arranging data for their transmission in block-coded form, and associated transmission method
FIELD OF THE INVENTION
The present invention relates to wireless communications and more particularly to high data rate and low latency time critical data transfers over a In particular, in a wireless communication device, the invention relates to a method of arranging and processing data, in order to allow robust transmission of critical data over a wireless network, in a block-coded form. This is particularly useful in multi-projector display systems, while being applicable in other kinds of applications.
BACKGROUND OF THE INVENTION
Some recent multimedia devices, such as video projection systems comprising multiple projectors, head mounted displays, or any other composite display systems, require sending or transmitting high quality uncompressed video data over a wireless communication network. This generally leaves little bandwidth for the transmission of control data. Control data form control messages, which contain for instance information needed to process the data.
Taking the example of a video projection system comprising multiple projectors arranged to generate adjacent, partially overlapping, images on a projection screen, to display high-definition (HD) video providing the user with a high image quality, each video projector generates an image with a given definition and a size determined by the projector lens focal length, the size of the projector's light modulation device (e.g. an LCD panel) and the distance between the projector and the screen. Increasing the projection distance yields a larger, but also darker, image since the brightness decreases with the square of the distance. Covering a very large projection screen with a sufficient definition and brightness usually requires aggregating the displays of several video projectors. Each video projector displays a sub-image of the overall video image to be displayed by the complete system. These sub-images may cover adjacent partially overlapping zones of the total screen area.
In order to make the system easy to install and rearrange, or to make it look sleeker, the multi-projector display system implements a communication network to distribute video data from a video source device to each of the video projectors.
The communication and data transfers between video projectors are usually done using a synchronous wireless network (i.e. in which network elements share a common network clock). This kind of network is well adapted to constant bandwidth transfers, such as video (especially raw video) and audio streams. The implemented network usually uses a 60 GHz frequency band, in order to provide the required bandwidth.
In order to enhance wireless communication robustness, block-coding methods may be used.
At the transmission side of the communication device, this consists in splitting the data to be transmitted into several blocks. These blocks are then encoded, typically applying Reed Solomon encoding on each block. Those blocks encoded using Reed Solomon encoding are commonly called RS blocks. Groups of encoded blocks are then formed and interleaved on the transmission medium.
An interleaved group of encoded blocks is commonly called a coding block".
At the reception side, each interleaved group of blocks is de-interleaved, and decoded (typically applying Reed Solomon decoding) in order to recover transmission errors. Thanks to the interleaving, a burst error impacting the transferred data is spread among the interleaved group of blocks. Thus, more de-interleaved blocks are impacted or corrupted, but each of them with a reduced impact. This maximizes the chance to recover the original data from the possibly corrupted received blocks.
If the impact of an error burst exceeds the coding block recovery capacity, important or critical data might be lost. In the context of video transmission, the loss of critical control data (i.e. data the network needs to deliver the payload) may impair the video quality. Some solutions are known to reduce the consequences of losing critical information, by retransmitting the lost information.
To achieve this, the transmitter may request an acknowledgement to confirm the correct reception of a control message. If the acknowledgement is missing, or reports an error status, the control message is retransmitted.
In the context of systems such as high resolution raw video multi-projection systems, the use of an acknowledgement mechanism has two main drawbacks. First, it implies some extra latency and data buffering. Extra latency is due to the delay between the transmission of the original control message, the processing of the control message at the reception side, and the management of the acknowledgement. In addition, extra data buffering is needed to store the original control message at the transmission side, until reception of the acknowledgement status. In addition, the use of an acknowledgement mechanism is not well adapted to multicast transmission. In such case, acknowledgments from different destination nodes and corresponding retransmissions have to be managed. In broadcast communications, each destination needs its own acknowledgment process to be specifically managed.
The thesis from Stefania Sesia dated June 29, 2005 and entitled Advanced coding techniques for mult/ca sting in wireless communications" discloses the different acknowledgment (ARQ) and hybrid ARO mechanisms that may be implemented in a wireless LAN context.
However, time critical control messages need a low latency robust transmission. As stated above, such low latency transmission cannot always be achieved when acknowledgement mechanisms are implemented.
A proposed solution to increase the robustness of transmission without causing a substantial increase in latency is to provide redundancy of the critical control data. According to this solution, critical control data are repeated right after their original transmission (i.e. the data are transmitted twice). However, as block-encoding is used, if a coding block containing data from the critical message and its copy is lost or deeply damaged, the critical message and its copy may be both lost. Moreover, as transmission errors are spread within the coding blocks because of their interleaving, if transmission errors exceeding the coding block recovery capacity impact a part of the coding block, the original message and its copy might both be damaged or lost.
The IEEE paper from Cassidy, W.G., Jaber, N., and Tepe, K.E., dated May 29, 2012 and entitled "Cross Layer Consideration for Improved Reliability of Vehicular Safety Messaging" discloses a theoretical foundation for a new collision correcting medium access control (MAC) and physical (PHY) cross layer design (CLD) for safety messages. The described concept relies on repetition messaging.
SUMMARY OF THE INVENTION
The present invention has been devised to address one or more of the foregoing concerns.
It would indeed be desirable to conceive a method of processing and sending data from a higher layer to a lower layer of a communication device, to achieve a robust transmission of critical data over a wireless network, in a block-coded form, while not increasing latency or buffering needs.
Thus, according to a first aspect of the invention, there is provided a method of arranging data for the wireless transmission of a data stream in the form of coding-blocks, said data comprising control data, the method comprising the steps of: -inserting control data at a first location of the data stream; -inserting at a second location of the data stream a copy of said control data inserted at the first location of the data stream; wherein the second location is spaced apart from the first location by at least an interval determined based on the size of the coding blocks used for the upcoming transmission of the data, the interval being sized so that the inserted control data and their copy are located in different coding blocks when transmitted.
Such method allows taking into account the transmission characteristics (in particular the size of the coding blocks used for transmission) to enhance the robustness of transmission. The interval between the original control data and their copy reduces the risk of a network perturbation impacting both said original control data and their copy.
The interval is sized so that the control data inserted at a first location and the copy of these control data inserted at a second location will then be encoded in different coding-blocks. So, the copy of the control data will be transmitted and consequently received in a different coding block from the original control data. Thus, the invention allows preserving control data, and in particular critical control data, from the effects of perturbations potentially affecting the coding block that includes them. The latency time is reduced compared to a system using an acknowledgment mechanism.
In a first embodiment, the interval may be defined by an amount of data.
In this case, at least the amount of data defining the interval is inserted between the last bit of the control data inserted at a first location of the data stream and the first bit of the copy of these control data that is inserted at a second location of the data stream. The interval may have the size of a multiple of the size of the coding blocks (i.e. the interval equals N times the size of a coding block, N being an integer). The spacing of control data from their copy may be achieved by inserting blank or non-significant data, payload data, or control data.
In another embodiment, the interval may be defined by an amount of time.
Control data may comprise critical control data and non-critical control data. Critical control data may be defined as data whose non-transmission would lead to significant signal degradation. The control data form control messages. The check of the critical or non-critical status of a message may be performed using a dedicated bit within a message header, or using a flag associated with the message. To ensure a good robustness of transmission, it is advisable to implement the steps of inserting control data at a first location and inserting a copy of the same control data at a second location for each critical control message. In other words, the robustness of transmission of the all critical data (i.e. all critical control messages, at the applicative layer) is increased by their redundancy in the transmitted data stream, the data that correspond to each original message being spaced apart from their copy by an interval in order to limit the risk of losing both the data forming a critical control message and their copy.
Spacing apart control data from their copy may be achieved by inserting non-critical control data between the first location and the second location] so that the second location is spaced apart from the first location by at least the determined interval.
The data stream is generally arranged, before its encoding for transmission, in the form of data packets. The data stream may then comprise data packets, and the inserted control data may be inserted in a first packet and their copy may be inserted in a second packet. At least one packet containing non-critical control data may be inserted between the first packet and the second packet.
Critical control data may also be inserted between the control data inserted at the first location and their copy. In such case, a first critical control message is inserted at a first location, a second critical control message is inserted before the insertion of a copy of said first critical control message at a second location. Next, a copy of said second critical control message is inserted in a location spaced apart from the location of said second critical message by at least the determined interval. In other words, the same redundancy mechanism is then implemented for all critical control data.
Inserting data to create the required interval allows optimizing the use of the available bandwidth, as useful data are transmitted during the interval.
In an embodiment of the invention, the interval may be obtained by adapting the length of the first packet. Thus, the length of the first packet is increased until there is at least the required interval between the control data inserted in a header of the first packet and its copy in the second packet, or between the header of the first packet and the header of the second packet. The increase in the length of the first message may be used to insert useful data in the first message.
Furthermore, a step of obtaining information relative to the size of the coding blocks may be implemented at a certain frequency and the interval may thus be determined each time information relative to the size of the coding blocks is obtained. The step of obtaining this information may then be continuously" (i.e. very frequently) performed to "continuously" adapt the interval to the obtained information relative to the size of coding blocks used for the transmission of the data in block-coded form. Thus the interval is kept up to date, following the coding block parameter changes Another aspect of the invention relates to a data transmission method comprising the steps of: * implementing a method of arranging data as previously described; * processing the arranged data to obtain coding-blocks; * transmitting the coding-blocks over a wireless network.
The processing step may use a Reed Solomon encoding.
In the processing step of such a transmission method, primary coding blocks may be formed and interleaved. Thus, transmission errors are spread among several coding blocks (for example RS blocks), and so have a better chance of being recovered.
The transmission method may implement a communication protocol arranged by layers, said communication protocol comprising: -a lower layer for block-coding the data to generate coding-blocks and transmitting said data -an intermediate layer at which the steps of inserting control data and inserting their copy are implemented; -a higher layer providing the control data to the intermediate layer.
The lower layer may be a physical layer. The intermediate layer may be a Media Access Control layer The higher layer may be a video processing layer In a method of arranging data or a data transmission method as previously described, establishing cross layer communication allows higher layers to request the lower layer to provide information about the way it handles data interleaving. Higher layers then determine a requested interval or "repeat guard period" that represents the minimum amount of data or time that should separate the transmission of the last data of a critical control message and the transmission of the first data of its copy, so that the original data and their copy are not within the same coding block when transmitted. Thanks to this, errors damaging a particular coding block do not have an impact on both original message and its copy.
A method of arranging data for transmission of said data in a block-coded form as above described, or a method of transmission implementing such method as above described, may advantageously be used in a composite display video system. Such composite display video system may be a video projection system comprising multiple projectors, head mounted displays, or any other systems using several devices to generate a single image.
Such a method of arranging data may also be advantageous when used in non-composite display video system; even if in such a case advantage linked to multicasting may be weak.
DETAILLED DESCRIPTION OF EMBODIEMENTS OF THE
INVENTION
Embodiments of the invention will now be described, by way of example only, and with reference to the following drawings in which: Figure 1 illustrates a composite video system; Figure 2 is a schematic representation of a communication protocol stack layer model; Figure 3 is a schematic representation of the arrangement of data in a known data transmission method; Figure 4 illustrates, using the same schematic representation as Figure 3, the arrangement of data in an embodiment of the invention; Figure 5 is a schematic block diagram of an algorithm used to determine the interval implemented in an embodiment of the invention; Figure 6 is a schematic block diagram of an algorithm which is an alternative to the algorithm shown in Figure 5; Figure 7 is a schematic block diagram of an algorithm implemented in an embodiment of the invention; Figure 8 is a schematic block diagram of an algorithm which is an alternative to the algorithm depicted on Figure 7; Figure 9 is a diagrammatic representation of a video projection system implementing a method according to an embodiment of the invention.
A wireless multi-projection video system is depicted in Figure 1. An embodiment of the invention is hereafter described in the context of such video system, which is a preferred application of the invention, but it should be recalled that the invention is applicable in other kinds of applications.
The depicted multi-projection video system comprises a plurality of communication and display devices 102, 103, 104 and 105 embodied in video projectors.
Display of high quality video on a large area with standard video projectors can be achieved using such a video system. For example an image composed of 3840x2160 pixels may be displayed. This image definition is also known as 4K2K definition or 4K Ultra High Definition.
In the depicted system, video input (for example 4K2K video) is provided by a video source device 100 to one of the video projectors of the system. This video projector, referred as master video projector 102, is able to split the video input into several video streams, for example four 1080p HD streams (a 1080p definition corresponds to 1920x1080 pixels). Blending areas are also created, where the displayed images overlap in order to compensate chrominance and luminance between the video projectors, so that the final display appears as if issued from a single projector Other video projectors of the system are referred to as slave video projectors 103,104,105. The video source is connected to the master video projector of the multi-projector system through a connection 101. The connection 101 may either be a wired HDMI connection, or a specific wireless connection able to sustain the high bit rate of video without substantial loss.
Each video projector 102, 103, 104, 105, has the task of projecting a sub-part of the global source frame, these sub-parts overlapping in part.
In such a multi-projection system, the connections between the projectors are generally based on 60 GHz wireless technology, able to provide several Gigabits per second (Gbps) of data throughput that may be used for uncompressed video exchange. In order to reduce the bandwidth needs on the wireless network, data corresponding to parts of the displayed frame that are rendered by more than one projector (overlapping areas) can be multicast from the source nodes to several rendering nodes.
In the system, an image capture device (such as a camera, not represented) is usually connected through wired connection to the master video projector 102, and enables the capture of the full display projection area 106. In another embodiment, this connection uses wireless radio means.
The invention is described hereafter in an embodiment implemented in the context of a communication protocol arranged by layers. The described layered organization is well known in the state of the art. It is based on The Open Systems Interconnection (OSI) model, which is a conceptual model that characterizes and standardizes the internal functions of a communication system by partitioning it into abstraction layers. The invention is advantageously implemented in the context of the OSI model, but may also be implemented in the context of other layered communication protocol models, for instance a protocol derived from the 051 model, or even outside such a layered organization.
Figure 2 presents an example of a conventional communication protocol stack, arranged by layers. The depicted communication protocol stack comprises three layers: the lower layer is a physical layer 202, usually called PHY layer, the intermediate layer is a Media Access Control layer 201, usually called MAC layer, and the higher layer is a video processing layer such as a Video Protocol Adaptation Layer 200, usually called VPAL layer.
Such a stack is present within each node of the network. Each layer of the stack provides a set of services to the upper layer, and, in order to provide those services, communicates with the equivalent layer of the other nodes, using communication services provided by the lower layer(s).
For instance, in a communication from a first node to a second node of the communication network, MAC layer 201 of the first node exchanges data with MAC layer 201 of the second node, using communication services provided by PHY layer 202.
Each layer communicates with the layer above and the layer below though an interface, or API (Application Programming Interface).
In the depicted example, PHY layer 202 manages the physical medium.
This includes, for instance, Reed Solomon error correction, signal modulation and signal demodulation. MAC layer 201 provides medium access services. VPAL layer provides video stream packetization, fragmentation and synchronization services.
In a video multi-projection system as described with reference to Figure 1, that comprises communication means using a layered communication protocol, as described with reference to Figure 2, high quality uncompressed video data is transmitted using high data rate Wireless network (WLAN). The data that have to be transmitted over the Wireless network comprise control data forming control messages. The control data are the data the network needs to deliver the payload.
Depending on the WLAN transmission data rate and on the uncompressed video resolution, there may be little bandwidth left for control message transmission.
Moreover, wireless communications are highly subject to transmission errors, resulting in message loss. Common methods used to improve messages transmission are based on acknowledgement mechanisms, but those methods are not suitable for time critical messages, due to the extra latency and buffering needs they add.
Wireless communication protocol physical layers 202 usually use block coding techniques for low level error correction. Using those techniques, at the transmitter side, PHY packet payload 311 is split into several blocks (for instance 216-byte blocks). These blocks are then encoded, typically applying Reed Solomon encoding on each block. Those blocks encoded using Reed Solomon encoding are commonly called RS blocks. Each sequence of N (for instance N=4) encoded RS blocks is then interleaved before being transmitted over the transmission medium. A group of interleaved RS blocks is called a coding block.
At the reception side, received data are deinterleaved, and each Reed Solomon encoded RS block is decoded, so that original PHY packet payload 311 can be restored. If a burst of data is lost or corrupted during transmission, the transmission error is spread among the sequence of N RS blocks after deinterleaving. Thus the error is spread in smaller errors, each spread error being easier to resolve by the Reed Solomon decoder.
Figure 3 is a schematic representation of the arrangement of data in a known data transmission method, which illustrates a main drawback of this transmission method. As illustrated in Figure 3, several messages 302-306 which are part of a data stream, built by a higher communication layer 200, are concatenated within a PHY packet payload 311 (310 illustrates the PHY packet header or preamble). Each message is made of a header 301 and a payload. If a message 302 has to be duplicated in order to enhance its transmission robustness, PHY layer 202 may be provided with a copy 303 of the message right after the transmission to the PHY layer of the original message. Message 302 and its copy 303 may be enclosed in packets at MAC layer 201. Depending on the message size and on the size of the coding block used at PHY layer 202, original message 302 and its copy 303 might have data contained within the same coding block, as presented in Figure 3 (Vertical lines 300 depict the delimitation of coding blocks).
Thus, if the original message is lost due to transmission errors, data from the copy of the message belonging to the coding-block shared with the original message might be lost too. This may cancel the benefits of the transmission of said copy.
Figure 4 illustrates the arrangement of data achieved in an embodiment of the invention, which allows avoiding such issue. As described with reference to Figure 2, PHY layer 202 is responsible for constituting and managing the RS blocks and the interleaver VPAL layer 200 is responsible for message building. In the illustrated embodiment of the invention, a cross layer communication is established, so that higher layers (for instance VPAL 200) might request the lower layer (for instance PHY layer 202) to provide information about the way it is processing the data.
The higher layer then determines an interval 415 or "repeat guard period" that represents the minimum amount of data or time that should separate the last data of an important original message (e.g. a time critical control message) from the first data of its copy. The interval is advantageously determined so that the data forming the original message and the data forming its copy are not within the same coding block after their insertion in the data stream at an intermediate layer (e.g. MAC layer 201) and after block-encoding of the data stream at the lower layer. In the depicted embodiment of the method, the size of the interval 415 equals the size of a coding-block. Thank to this, errors damaging a coding block do not have impact on both the original message and its copy.
For instance, in the described embodiment, VPAL layer 200 requests PHY layer 202 to provide the size of the coding blocks (e.g. the size of RS blocks multiplied by N, N being the number of RS blocks interleaved in a coding block).
VPAL layer 200 may then set the interval to the size of this coding block (defining in this case the interval by an amount of data). Thus after transmitting an important message, VPAL layer 200 transmits other messages (304, 305, 306) and checks their respective size. As soon as the cumulative size of messages transmitted after the original message is equal or bigger than the interval 415, the copy 303 of the original message can be transmitted.
Thus, whether the size of an important message is smaller or bigger than the size of a coding block, no data from the original important message 302 will be encoded to be transmitted in the same coding block as data from the copy 303 of this message.
Figure 5 illustrates an example of a process for an upper layer (for instance VPAL layer 200) to determine the interval implemented in a method according to an embodiment of the invention. This process is depicted in the form of a block diagram.
At step 501, VPAL layer 200 sends a request to the PHY layer 202 to obtain information on the size of coding blocks currently in use. This request and the associated response will cross the different layers (including for example MAC layer 201) between the requester layer and the PHY layer through the successive layers API. This may use a dedicated API call, or take the form of a specific message, using a specific addressing that will be intercepted by the PHY layer. Any other method to obtain the information from the lower layer may be used.
At step 502, it is determined whether a coding block size is currently set.
If no coding block size is set at the time the request is made, PHY layer 202 returns an error code within the response to the request, and then the requester layer shall re-apply its request after a delay, i.e. after a waiting step 503.
Once the requested coding block size has reached the VPAL layer, the coding block size is stored (step 504) and the interval is determined at step 505.
The size of the interval is advantageously at least the coding-block size. It could be set to a higher value for instance in cases where the PHY layer records statistics on errors occurring on the used transmission medium: the upper layer may request this information and adapt the interval in consequence. For instance, if a PHY layer provides the information that an error burst generally impacts M consecutive coding blocks, the interval should advantageously be set to M or Mi-i times the coding block size.
Figure 6 presents an enhancement of the determination process of the interval described with reference to Figure 5. This embodiment is best suited when the layer that interleaves the data (e.g. PHY layer 202) dynamically adapts the interleaving parameters (for instance in order to adapt the coding-block size to the current network conditions).
An initial interval determination is performed, for example by implementing the algorithm as depicted in Figure 5. The initial interval determination is performed at step 505'. Steps 501' to 505' are the same as steps 501 to 505 depicted in Figure 5. Next, the process waits for a given time or "check delay" at step 610. Once this time has elapsed, the coding block size is once again requested from the PHY layer 202 (step 611).
If PHY layer 202 returns an error code within its response to the request, the requester layer re-applies its request after a delay ("request delay"), i.e. after a waiting step 613.
Once a correct response (i.e. actual information on the block-coding size) has reached the VPAL layer, whether the block-coding size has changed or not is evaluated at step 614. If the coding block size has not changed, the process returns to step 610. The lapse of the "check delay is waited for, and then the coding block size is once again requested from the PHY layer (step 611).
Otherwise, the new coding-block size is stored at step 504. A new interval is determined, based on this new value.
In another embodiment, the PHY layer 202 notifies the upper layer of a modification in interleaving parameters, using an interrupt signal or an event notification. The upper layer should then send a request to the PHY layer 202 to obtain the coding block size in use.
In another embodiment, the interval determination takes into account interleaving within several layers. In this embodiment, the layer transmitting the control messages asks each lower layer whether they implement an interleaver, and requests the interleaving parameters of the interleavers. Then it determines the interval according to the interleaving parameters leading to the biggest interval.
Figure 7 is a block diagram of an algorithm implemented in an embodiment of the invention. This algorithm is implemented at an intermediate layer (e.g. MAC layer 301) for transmitting messages to a lower layer.
The system is initialized at initialization step 701. The initialization includes the determination of the interval as described in relation with Figure 5 or Figure 6.
Next, control messages from the upper layer (e.g. VPAL layer 200) are awaited at step 702. As soon as a control message is ready to be sent to the PHY layer 202, it is checked at step 703 whether the control message is critical or not (this check may be performed using a dedicated bit within a message header, or by associating a flag with the message).
If the message is not critical, the data forming the control message are inserted in the data stream (in a packet of data) and transmitted at step 704 to the PHY layer for encoding an upcoming transmission over a wireless network. The presence of new messages is checked at step 705. If a new message is ready to be sent to PHY layer 302, its criticality status is checked at step 703; otherwise, a new message is awaited at step 702.
If the message is critical, it is transmitted to the lower layer at step 710.
A variable padded_size is initialized to zero at step 711. This variable represents the size of cumulated padding data transmitted between a critical message and its copy (i.e. between the last bit of the data forming a critical message at the higher layer and the beginning or first bit of the data forming its copy, or, for instance, between the end of the insertion of the message at a first location of the data stream and the beginning of the insertion of its copy at a second location of the data stream). Padding data forming a padding message" are built at step 712 and transmitted at step 713. In the best case, the size of the padding message matches the determined interval.
At step 714 the value associated with the variable padded_size is incremented by the size of the padding data. A check is then performed to ensure that the interval has been respected after the end of the transmission of critical data to the PHY layer 202 (step 715): -if this is the case (i.e. the value of the variable padded_size is bigger than or equals the interval), the critical data are retransmitted (step 716) (i.e. a copy of these data are transmitted to the lower layer) and the presence of new messages to be transmitted is checked (step 705).
-otherwise (i.e. the value of the variable padded_size is smaller than the interval), a new padding message is built (the algorithm returns at step 712).
Figure 8 presents an enhancement of the algorithm presented in relation to Figure 7. The beginning of the algorithm is similar to the beginning of the algorithm described in relation to Figure 7. Steps 701', 702', 703', 704', 705', 710', 715', and 716' are equivalents of steps 701, 702, 703, 704, 705, 710, 715, and 716 of Figure 7.
After the transmission (for example to the PHY layer 202) of critical data at step 710', a variable Tx_size, representing the size of cumulative data (padding or not) transmitted between a critical message and its copy, is initialized to zero at step 820.
The availability of other messages ready for transmission is checked at step 821.
-if no message is ready or if the next message ready for transmission is a critical message, a padding message is built at step 822 and transmitted to PHY layer 202 at step 823. The value of the variable Tx_size is incremented at step 826 by the size of the transmitted padding message.
-if the next message ready for transmission is a non-critical message, this message is transmitted to PHY layer 202. The value of the variable Tx_size is incremented at step 826 by the size of the transmitted message.
Once step 826 has been completed, the interval value is checked at step 827, to take into account its possible modification. This step is performed by using the process described in relation with Figure 6.
A check is then performed to ensure that the interval has been respected after the end of the transmission of critical data to the PHY layer 202 (step 715'): -if this is the case (i.e. the value of the variable Tx_size is bigger than or equals the interval) the critical data are retransmitted (step 716') (i.e. a copy of these data are transmitted to the lower layer) and the presence of new messages to be transmitted is checked (the algorithm returns to step 705').
-Otherwise, (i.e. the value of the variable Tx_size is smaller than the interval) step 821 is reached again, where the presence of other messages ready for transmission is checked.
Thanks to this, the use of the bandwidth is optimized, as the available bandwidth between critical data and their copy is used to transmit other messages.
In another embodiment, data forming a second critical message may be transmitted between the data forming a first original message and their copy. In this case, for each critical message, a dedicated variable stores the cumulative size of data transmitted after the data of the critical message, to determine when a copy can be transmitted to respect the interval between each insertion of critical data and its copy.
In another embodiment, in which critical data are comprised in a header of a first packet, these critical data may be copied in the header of the next transmitted packet. In this case, the size of the payload of the first packet is adapted to ensure that the header of the first packet and the header of the next transmitted packet are spaced apart by at least the required interval (to ensure that both headers are not encoded within the same coding-block).
Figure 9 presents the main functional block diagram of a video projector implementing a method according to an embodiment of the invention.
A processor 901 (CPU) manages most of the configuration tasks, and implements at least a method according to the invention or at least an algorithm as described in relation to the previous Figures. Those algorithms generate configuration values that can be set in corresponding functional blocks thanks to the processor interconnection bus 903.
Blocks that must be configured are linked to the bus 903. A random access memory (RAM) 900 stores program instructions and data handled by the processor 901. The processor 901 also implements the communication protocol (this is the software part of the communication layers), which generates critical and non-critical messages.
A video source intertace (IF) module 904 receives the video data and synchronization information from the video source (it can be for instance an HDMI adapter). The video source IF module 904 outputs the video data to a video buffer controller 907 and synchronization signals to the synchronization controller 909.
The synchronization controller 909 generates the video synchronization signals used to manage video rendering.
A video buffer controller 907 manages the access to the video buffer 906, implemented in a RAM (Random Access Memory). It writes data from video source IF module 904 and from a wireless local area network (WLAN) controller 908 into the video buffer 906. It also reads video data from the video buffer 906, and provides it either to the WLAN controller 908 or to local a display controller 910, depending on video data destination. The WLAN controller 908 also implements the hardware parts of PHY and MAC layers (201 and 202). VPAL layer 300 is using the hardware modules within area 911.
The above examples are merely embodiments of the invention, which is not limited thereby.
Claims (19)
- CLAIMS1. A method for arranging data for the wireless transmission of a data stream in the form of coding-blocks, said data comprising control data, the method comprising the steps of: -inserting control data at a first location of the data stream; -inserting at a second location of the data stream a copy of said control data inserted at the first location of the data stream; wherein the second location is spaced apart from the first location by at least an interval determined based on the size of the coding blocks used for the upcoming transmission of the data, the interval being sized so that the inserted control data and their copy are located in different coding blocks when transmitted.
- 2. The method of claim I wherein the interval is defined by an amount of data.
- 3. The method of claim 2, wherein the size of the interval is a multiple of the size of the coding blocks.
- 4. The method of claim 1, wherein the interval is defined by an amount of time.
- 5. The method of any one of the preceding claims, wherein the control data comprise critical control data forming critical control messages, and wherein the steps of inserting control data at a first location and inserting a copy of the inserted control data at a second location are implemented for all critical control messages.
- 6. The method of any one of the preceding claims, wherein the control data also comprise critical control data and non-critical control data, the method comprising inserting non-critical control data between the first location and the second location, so that said second location is spaced apart from the first location by at least the determined interval.
- 7. The method of any one of the preceding claims, wherein the data stream comprises data packets, and wherein the inserted control data are inserted in a first packet and their copy is inserted in a second packet.
- 8. The method of claim 7, comprising inserting at least one packet containing non-critical control data between the first packet and the second packet.
- 9. The method of claim 7 or claim 8, the inserted control data being in a header of the first packet, and their copy being in a header of the second packet, comprising adapting the length of the first packet so that the headers of said first packet and second packet are spaced apart by at least the determined interval.
- 10. The method of any one of the preceding claims, wherein a step of obtaining information relative to the size of the coding blocks is implemented at a certain frequency and the interval is determined each time information relative to the size of the coding blocks is obtained.
- 11. A data transmission method comprising the steps of: implementing a method of arranging data of any one of claims 1 to 10; * processing the arranged data to obtain coding-blocks; * transmitting the coding-blocks over a wireless network.
- 12. The transmission method of claim 11, wherein in the processing step primary coding blocks are formed and interleaved to obtain coding-blocks.
- 13. The method of claim 11 or claim 12, wherein said method implements a communication protocol arranged by layers, said communication protocol comprising: -a lower layer for block-coding the data to generate coding-blocks and transmitting said data -an intermediate layer at which the steps of inserting control data and inserting their copy are implemented; -a higher layer providing the control data to the intermediate layer.
- 14. The method of any of the preceding claims, wherein the lower layer is a physical layer, and the intermediate layer is a Media Access Control layer.
- 15. The method of claim 14, wherein the higher layer is a video processing layer.
- 16. Use of a method according to any one of claims 1 to 15 in a composite display video system.
- 17. A method of arranging data as hereinbefore described with reference to, and as shown in Figure 7 or 8 of the accompanying drawings.
- 18. The method of claim 15, further implementing an algorithm as hereinbefore described with reference to, and as shown in Figure 5 or 6 of the accompanying drawings.
- 19. A video projector as hereinbefore described with reference to, and as shown in Figure 9 of the accompanying drawings.Amendments to the claims have been filed as followsCLAIMSl.A data transmission method comprising the steps of: * arranging data for the wireless transmission of a data stream in the form of coding-blocks, said data comprising control data, arranging data comprising the steps of: -inserting control data at a first location of the data stream; -inserting at a second location of the data stream a copy of said control data inserted at the first location of the data stream; wherein the second location is spaced apart from the first location by at least an interval determined based on the size of the coding blocks used for the upcoming transmission of the data, the interval being sized so that the inserted control data and their copy are located in different coding blocks when transmitted; * processing the arranged data, said processing comprising splitting J5 the data to be transmitted into several blocks, encoding said blocks, forming groups of encoded blocks and interleaving the groups of encoded blocks to obtain coding-blocks; 0*** * transmitting the coding-blocks over a wireless network 2. The method of claim 1 wherein the interval is defined by an amount of data. sage3. The method of claim 2, wherein the size of the interval is a multiple of the size of the coding blocks.4. The method of claim 1, wherein the interval is defined by an amount of time.5. The method of any one of the preceding claims, wherein the control data comprise critical control data forming critical control messages, and wherein the steps of inserting control data at a first location and inserting a copy of the inserted control data at a second location are implemented for all critical control messages.6. The method of any one of the preceding claims, wherein the control data also comprise critical control data and non-critical control data, the method comprising inserting non-critical control data between the first location and the second location, so that said second location is spaced apart from the first location by at least the determined interval.7. The method of any one of the preceding claims, wherein the data stream comprises data packets, and wherein the inserted control data are inserted in a first packet and their copy is inserted in a second packet.8. The method of claim 7, comprising inserting at least one packet containing non-critical control data between the first packet and the second packet.9. The method of claim 7 or claim 8, the inserted control data being in a header of the first packet, and their copy being in a header of the second packet, comprising adapting the length of the first packet so that the headers of said first packet and second packet are spaced apart by at least the determined interval.10. The method of any one of the preceding claims, wherein a step of obtaining information relative to the size of the coding blocks is implemented at a certain frequency and the interval is determined each time information relative to the size of the coding blocks is obtained. a* 11. The method of any of the preceding claims, wherein said method *.".* * 20 implements a communication protocol arranged by layers, said communication : ** protocol comprising: a..-a lower layer for block-coding the data to generate coding-blocks and transmitting said data; -an intermediate layer at which the steps of inserting control data and *: 25 inserting their copy are implemented; -a higher layer providing the control data to the intermediate layer.12. The method of any of claim 11, wherein the lower layer is a physical layer, and the intermediate layer is a Media Access Control layer.13. The method of claim 12, wherein the higher layer is a video processing layer.14. Use of a method according to any one of claims I to 13 in a composite display video system.15. A method of arranging data as hereinbefore described with reference to, and as shown in Figure 7 or 8 of the accompanying drawings.16. The method of claim 13, further implementing an algorithm as hereinbefore described with reference to, and as shown in Figure 5 or 6 of the accompanying drawings.17. A video projector as hereinbefore described with reference to, and as shown in Figure 9 of the accompanying drawings.S *SS* S*s*S * S () 0 S. * *5*S a S. SC, SS ***)SS.'...S
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1320997.8A GB2520930B (en) | 2013-11-28 | 2013-11-28 | Method for arranging data for their transmission in block-coded form, and associated transmission method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1320997.8A GB2520930B (en) | 2013-11-28 | 2013-11-28 | Method for arranging data for their transmission in block-coded form, and associated transmission method |
Publications (3)
Publication Number | Publication Date |
---|---|
GB201320997D0 GB201320997D0 (en) | 2014-01-15 |
GB2520930A true GB2520930A (en) | 2015-06-10 |
GB2520930B GB2520930B (en) | 2018-04-18 |
Family
ID=49979459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1320997.8A Active GB2520930B (en) | 2013-11-28 | 2013-11-28 | Method for arranging data for their transmission in block-coded form, and associated transmission method |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2520930B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2579399A (en) * | 2018-11-30 | 2020-06-24 | Imagination Tech Ltd | Data compression and storage |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995012931A1 (en) * | 1993-11-01 | 1995-05-11 | Telefonaktiebolaget Lm Ericsson | Digital control channels having logical channels for multiple access radiocommunication |
-
2013
- 2013-11-28 GB GB1320997.8A patent/GB2520930B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995012931A1 (en) * | 1993-11-01 | 1995-05-11 | Telefonaktiebolaget Lm Ericsson | Digital control channels having logical channels for multiple access radiocommunication |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2579399A (en) * | 2018-11-30 | 2020-06-24 | Imagination Tech Ltd | Data compression and storage |
GB2579399B (en) * | 2018-11-30 | 2020-12-16 | Imagination Tech Ltd | Data compression and storage |
US10972126B2 (en) | 2018-11-30 | 2021-04-06 | Imagination Technologies Limited | Data compression and storage |
US11863208B2 (en) | 2018-11-30 | 2024-01-02 | Imagination Technologies Limited | Data compression and storage |
Also Published As
Publication number | Publication date |
---|---|
GB201320997D0 (en) | 2014-01-15 |
GB2520930B (en) | 2018-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020192258A1 (en) | Data transmission method and apparatus | |
US7979784B2 (en) | Method and system for enhancing transmission reliability of video information over wireless channels | |
EP1457052B1 (en) | System and method for streaming multimedia over packet networks | |
US8775889B2 (en) | Adaptive error resilience for packet transmission over a network | |
CN105704580B (en) | A kind of video transmission method | |
US20150236819A1 (en) | Method & apparatus for improving the performance of tcp and other network protocols in a communications network using proxy servers | |
US20070121639A1 (en) | Data packet retransmission and fec arrangement, and corresponding method | |
CN108174234A (en) | A kind of flow-medium transmission method and system | |
KR101826701B1 (en) | Method and system for multiplexing data streaming in audio/video networks | |
US20080002650A1 (en) | Partially delayed acknowledgment mechanism for reducing decoding delay in WiHD | |
US9614883B2 (en) | Method and device for transmitting uncompressed video streams | |
CA2998900A1 (en) | Fec mechanism based on media contents | |
EP2826151B1 (en) | Methods and apparatus for maximum utilization of a dynamic varying digital data channel | |
JP2009100118A (en) | Transmission device, reception device, communication device, and communication method | |
CN102438002B (en) | A kind of based on the video file data transmission under Ad hoc network | |
GB2520930A (en) | Method for arranging data for their tranmission in block-coded form, and associated transmission method | |
KR101710011B1 (en) | Image data transmission and reception method and apparatus | |
US20060259939A1 (en) | Method, system and receiving device for transmitting screen frames from one to many terminals | |
CN114125508B (en) | Reliability guarantee method for video multicast in wireless domain | |
CN112954405A (en) | Data packet recovery method, device and system | |
CN103354490A (en) | Coding packet adaptive retransmission mechanism combining compensation and foresight | |
US11991228B2 (en) | Systems and methods for controlling high speed video | |
KR20110087316A (en) | Application-configured, content-based retransmission scheme for dropped media access control frames | |
KR101839415B1 (en) | Image data transmission and reception method and apparatus | |
Micanti et al. | A packetization technique for D-Cinema contents multicasting over metropolitan wireless networks |