A method and devices for providing enhanced buffer synchronisation
By selectively updating buffers based on compression efficiency, saving buffer copies, and using a reconfigurable dictionary set, the method addresses the challenges of transmitting diverse data types efficiently and robustly, maintaining high communication reliability and capacity.
Patent Information
- Application Number
- PCT/EP2023/082135
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-16
- Publication Date
- 2025-05-22
AI Technical Summary
Existing data communication technologies face challenges in efficiently transmitting non-audio and video related data, such as sensor data, control data, and text data, while maintaining communication capacity below the Shannon Limit, and are vulnerable to packet loss which affects buffer synchronization and compression efficiency.
The method involves selectively updating compression and decompression buffers based on compression efficiency, saving copies of buffers to maintain robustness, and using a reconfigurable dictionary set to adapt to changing data types and handle packet loss effectively.
This approach enhances the robustness and efficiency of data compression and decompression by minimizing the impact of packet loss, improving compression efficiency, and adapting to various data types, thereby maintaining high communication reliability and capacity.
Smart Images

Figure EP2023082135_22052025_PF_FP_ABST
Abstract
Description
[0001] A METHOD AND DEVICES FOR PROVIDING ENHANCED BUFFER SYNCHRONISATION
[0002] FIELD OF THE INVENTION
[0003] This invention relates to synchronising compression and decompression buffers at transmitter and receiver ends of a data communication.
[0004] BACKGROUND
[0005] Communication channels have been fast approaching the Shannon Limit since 4G LTE. As a result, there has been significant effort directed toward compression of the most capacity heavy types of data such as audio and video data. These data types are usually highly compressed and thus can be transmitted in an efficient manner. There are many benefits of compressing data efficiently for transmission. For example, increased network capacity, increased reliability per packet, reduced latency per packet, reduced power consumption per packet, and reduced overall interference level.
[0006] Since the introduction of 5G, machine-type data communications are becoming more and more prevalent and important. The Industrial Internet Of Things (HOT) in particular has become a key application of data communications since 5G. For example, 5G-ACIA is an industrial association defining industrial IOT requirements for 5G. In 3GPP, where mobile communication technologies are standardized, there are a series of working items on the aspects of enhancements for Cyber-physical control Applications in Vertical domains (eCAV), Vertical Local Architecture Network (VerticalLAN), HOT, and Study on Network of Service Robots with Ambient Intelligence (FS_SOBOT).
[0007] Robotics is drawing a high level of interest as an application area of 6G. For example, the One6G research association has published a position paper called ‘6G and Robotics’ which envisions a future where 6G technologies and solutions allow for the potential of smart connectivity for a secure, resilient and sustainable development of our society, with a focus on the growing trend of robotics applications. Successful development of these avenues will require the most efficient data communication within the capacity set by the Shannon Limit.
[0008] It is anticipated that there will be a greater demand for communication of non-audio and video related data in the near future. It is therefore desirable to develop an approach for minimising the impact of growing data forms such as sensor data, control data, web data, and text data, on the capacity of communications data and remain below the Shannon Limit. SUMMARY OF THE INVENTION
[0009] According to one aspect there is provided a device configured to transmit data packets over a communications network, the device configured to selectively update a compression buffer of the device and transmit an indication to a receiver device to make a corresponding update to a decompression buffer.
[0010] In an embodiment, the device may be configured to update the compression buffer to comprise all or part of a data packet to be sent based on a compression efficiency derived from the size of the packet before compression compared to the size of the packet after compression. In an embodiment, the device may be configured to update the compression buffer to comprise all or part of the data packet to be sent only when the compression efficiency gain is above a threshold. This improves the effectiveness of the compression buffer.
[0011] In an embodiment, the device may be configured to save a copy of the compression buffer each time all or part of a data packet to be sent is added to the compression buffer and transmit an indication to the receiver device to save a copy of the decompression buffer. In an embodiment, the device may be configured to assign each copy of the compression buffer a unique identifier and transmit the identifier to the receiver device. This improves the robustness of the compression in response to packet loss.
[0012] In an embodiment, in response to receiving an indication from the receiver device that a previously transmitted data packet has been dropped, the device may be configured to overwrite the current compression buffer by loading a previously saved copy of the compression buffer. This improves the subsequent compression of packets after packet loss.
[0013] In an embodiment, the device may be configured to receive the unique identifier corresponding to a specific saved copy of the compression buffer and overwrite the current compression buffer by loading the identified previously saved copy of the compression buffer. In an embodiment, the device may be configured to save at least one previous copy of the compression buffer. This improves the robustness of the compression in response to multiple lost packets.
[0014] In an embodiment, the device may be configured to agree a pre-defined dictionary set for use with the receiver device and, in response to receiving an indication from the receiver device that a previously transmitted data packet has been dropped, overwrite the current compression buffer by loading a dictionary from the pre-defined set. This improves the subsequent compression of packets after packet loss.
[0015] In an embodiment, the device may be configured to transmit an identifier to the receiver device identifying which dictionary of the pre-defined set has been loaded to the compression buffer. In an embodiment, the device may be configured to transmit the identifier to the receiver device with the next compressed data packet. In an embodiment, the device may be configured to select a dictionary from the pre-defined set of dictionaries based on the type of data being transmitted. This provides additional flexibility when handling multiple data traffic types.
[0016] In an embodiment, the device may be configured to generate the data packet to be sent comprising an indicator in one or more reserved fields of the data packet to indicate to the receiver device that the decompression buffer should be updated. In an embodiment, the one or more reserved fields may also comprise an indication of the part of the data packet to be added to the decompression buffer by indicating it’s start point and length. In an embodiment, the unique identifier may be a checksum of the associated compression buffer. This provides an efficient way of indicating the buffer update to be performed.
[0017] According to another aspect there is provided a device configured to receive data packets over a communications network, the device configured to update a decompression buffer of the device in response to receiving an indication from a transmitter device to update the decompression buffer to comprise all or part of a received data packet.
[0018] In an embodiment, the device may be configured to save a copy of the decompression buffer in response to receiving an indication from the transmitter device to copy the decompression buffer. In an embodiment, the saved copy of the decompression buffer may be assigned a unique identifier. This improves the robustness of the compression in response to packet loss.
[0019] In an embodiment, in response to detecting that a previously transmitted packet has been dropped, the device may be configured to transmit to the transmitter device the unique identifier of the most recently saved decompression buffer copy corresponding to a specific saved copy of the compression buffer. In an embodiment, the device may be configured to overwrite the current decompression buffer by loading the identified copy of the decompression buffer. This improves the robustness of the compression in response to multiple lost packets.
[0020] In an embodiment, in response to detecting that a previously transmitted packet has been dropped, the device may be configured to generate an error notification comprising the unique identifier in one or more reserved fields of a feedback packet. In an embodiment, the unique identifier may be a checksum of the associated decompression buffer. This provides an efficient way of indicating the buffer update to be performed.
[0021] In an embodiment, the device may be configured to agree a pre-defined dictionary set for use with the transmitter device and, in response to receiving an indication from the transmitter device identifying a dictionary of the pre-defined set, overwrite the current decompression buffer by loading the identified dictionary to the decompression buffer. This provides additional flexibility when handling multiple data traffic types.
[0022] According to another aspect there is provided a method for synchronising a compression buffer and a decompression buffer during a process of transmitting data packets over a communications network, the method comprising: selectively updating the compression buffer of a transmitter device to comprise all or part of a data packet to be transmitted; transmitting, to a receiver device along with the data packet, an indication to make a corresponding update to the decompression buffer; and updating, in response to receiving the indication from the transmitter device, the decompression buffer of the receiver device to comprise all or part of the transmitted data packet.
[0023] In an embodiment, the method may comprise selectively updating the compression buffer based on a compression efficiency derived from the size of the packet before compression compared to the size of the packet after compression. In an embodiment, the method may comprise selecting to update the compression buffer only when the compression efficiency gain is above a threshold. This may improve the effectiveness of the compression buffer.
[0024] In an embodiment, the method may comprise saving a copy of the compression buffer at the transmitter device each time the compression is updated; transmitting an indication to the receiver device to save a copy of the decompression buffer at the receiver device; and saving a copy of the decompression buffer at the receiver device in response to receiving the indication. In an embodiment, the method may comprise assigning to the copy of the compression buffer a unique identifier, transmitting the identifier to the receiver device, and assigning the identifier to the corresponding copy of the decompression buffer at the receiver device. This improves the robustness of the compression in response to packet loss.
[0025] In an embodiment, the method may comprise, in response to detecting at the receiver device that a previously transmitted packet has been dropped, transmitting from the receiver device to the transmitter device an indication that a previously transmitted data packet has been dropped, causing the transmitter device to overwrite the current compression buffer by loading a previously saved copy of the compression buffer. This improves the subsequent compression of packets after packet loss.
[0026] In an embodiment, the indication may comprise the unique identifier of the most recently saved decompression buffer copy corresponding to a specific saved copy of the compression buffer, and the method comprises overwriting at the transmitter device the current compression buffer by loading the identified specific saved copy of the compression buffer. This improves the subsequent compression of packets after packet loss.
[0027] In an embodiment, the method may comprise: agreeing between the transmitter device and the receiver device a pre-defined dictionary set for use; generating by the receiver device an error notification in response to detecting at the receiver device that a previously transmitted packet has been dropped; transmitting the error notification from the receiver device to the transmitter device; overwriting the current compression buffer of the transmitter device by selecting and loading a dictionary of the pre-defined set; transmitting an identifier from the transmitter device to the receiver device identifying which dictionary of the pre-defined set has been loaded to the compression buffer; and overwriting the current decompression buffer by loading the identified dictionary to the decompression buffer in response to receiving the indication at the receiver device from the transmitter device. This improves the subsequent compression of packets after packet loss.
[0028] In an embodiment, selecting a dictionary of the pre-defined set of dictionaries may be based on the type of data being transmitted. This provides additional flexibility when handling multiple data traffic types.
[0029] In an embodiment, assigning or transmitting the identifier may comprise generating the identifier by executing a checksum function on the identified quantity. This provides an efficient way of indicating the buffer update to be performed.
[0030] BRIEF DESCRIPTION OF THE FIGURES
[0031] The present invention will now be described by way of example with reference to the accompanying drawings. In the drawings:
[0032] Figure 1 shows a message sequence diagram for the existing buffer update process. Figure 2A shows a flow diagram of the selective updating of the compression buffer at a transmitter device.
[0033] Figure 2B shows a flow diagram of the selective updating of the decompression buffer at a receiver device.
[0034] Figure 3 shows a message sequence diagram between a transmitter device and a receiver device implementing the proposed selective buffer update process.
[0035] Figure 4 shows a message sequence diagram between a transmitter device and a receiver device implementing the proposed selective buffer update and buffer copy saving process.
[0036] Figure 5 shows a message sequence diagram between a transmitter device and a receiver device implementing the proposed reconfigurable dictionary set.
[0037] Figure 6 illustrates how the proposed buffer enhancements may be implemented using packet header information.
[0038] Figure 7 shows how the proposed buffer enhancements may be implemented using header information of a feedback message.
[0039] DETAILED DESCRIPTION OF THE INVENTION
[0040] It has been noted that all types of data are not transmitted in an efficient way. For example, text data, Web data, sensor data, and control data, etc. Moreover, it has been noticed that all of these data types have low entropy. For example, in machine communication data traffic the information entropy is quite low. This indicates a high potential that the data traffic can be effectively compressed.
[0041] The low entropy is due to multiple factors and traits of the data type. In the case of machine control data the machine-type packet format is fixed or regular. Also, the changing of machine status and control values are mostly a continuous process. As a result, there is strong similarity in the information bits carried in consecutive data packets. In sensor data samples, there are a high number of continuous zero values due to the redundant dynamic range of sensors. That is, the machine movements are typically confined to relatively regular movements in cartesian space, and the sensing data is collected at regular time intervals. There is currently some compression achieved when transmitting data by way of Uplink Data Compression (UDC) based on the DEFLATE protocol and optimized for SIP / SDP messages. This typically comprises the transmitter (or sender) side and the receiver side maintaining two respective identical copies of the buffer with the previously transferred packets stored in them. This serves to aid the compression and decompression of the next packets. The buffer can also be preloaded with a prescribed dictionary including the feature data of a certain traffic type. In UDC, the dictionary is made according to the SIP and SDP data. The buffers at the transmitter and receiver are updated by each outgoing or incoming packet respectively.
[0042] However, the above compression method has limitations. The compression gain and reliability is not optimal due to the rough handling of packet loss. That is, each time a packet is determined to have been lost the buffer is reset to zero at both the transmitter and receiver end. The buffer update strategy is simple, there is a lack of adaptability to a wide range of packet formats and the buffer synchronization is very vulnerable to packet loss. In addition to this, the dictionary is fixed and not reconfigurable. It is therefore not optimized and adapted to the machine type of traffic. The above-described compression method is also only implemented for uplink data transmissions.
[0043] Figure 1 shows a message sequence diagram for the existing buffer update process 100 as described above. The transmitter device 102 and receiver device 104 initially agree on a dictionary 106. Subsequently, each time a compressed data packed is transmitted, the transmitter device updates the compression buffer and the receiver device updates the decompression buffer. When a compressed packet is lost both the transmitter device and receiver device are unaware of the loss until the next compressed packet is successfully transmitter. Upon determining that a previous packet has been lost, the receiver device notifies the transmitter device. Both devices reset their respective buffers, compression and decompression buffers, to zero. That is, they delete the contents of the buffers. The next packet sent is compressed with the reset compression buffer and then transmitted. As a result, the stored previous packets, which may have helped to efficiently compress the next packet, are no longer available and the compression efficiency is likely to be significantly less than previous packets sent prior to buffer reset. That is, the packet is likely to not be compressed as much.
[0044] It can therefore be seen that a single packet drop leads to buffer mismatch and the loss of at least two packets: the dropped packet and the following packet which will fail to be decompressed due to the buffer mismatch. Further, when the packet drop happens, the method simply resets the buffer to zero. Consequently, the knowledge in the dictionary and the knowledge learnt from the previous data packets is discarded. As mentioned above, the compression gain right after the packet drop is therefore significantly reduced.
[0045] More generally, the existing method is not as effective as it could be. One reason is because once a selection of the dictionary is made it cannot be adapted for various other machine-type data traffic sent later. Additionally, in these types of data transmissions multiple similar packets may appear consecutively. In the existing method this leads to an excessive number of similar versions of packets being stored in the buffer. The space for other packet features in the buffer can be occupied which leads to low compression gain when they appear.
[0046] Thus, there is presented herein an approach for selectively saving a packet to the compression and decompression buffers. There is also proposed an approach for indicating, when a packet is lost, how to reset the buffers to be synchronized without losing valuable saved data in the buffers to assist in future compression and decompression processes. Further, there is also proposed an approach for dynamically changing a dictionary such that if a data traffic type changes or the buffer data is lost, an appropriate dictionary can be selected from those available and communicated to both the transmitter and receiver devices.
[0047] More specifically, it is proposed in the Packet Data Convergence Protocol (PDCP) layer, to selectively update the compression and decompression buffers including signaling for a buffer update from the sender device to the receiver device. This selection may use an updating rule which is based on the compression ratio of the packets. That is, a rule may be established for determining if the compression of future packets is likely to be improved by including the current packet to be transmitted in the compression buffer. This may be determined by comparing the compression efficiency of the current packet having consideration of the content of the current packet first, to the compression of the current packet without consideration of its content first.
[0048] Additionally, and also in the PDCP layer, it is proposed to make a record or copy of the buffer. This enables more efficient recovery in response to an error or dropped packet, preserving the high compression gain. In a similar way to the above feature, it is proposed herein to signal for buffer copying from the sender to the receiver device. It is also proposed herein to signal error feedback along with an identifier of the buffer copy to be loaded to the compression buffer of the sender device.
[0049] There is also proposed herein a reconfigurable dictionary set which can be indicated using RRC signaling. The ideas of selectively indicating when to update the buffer and selectively indicating when to save a copy of the buffer for compressed data transmission, as proposed herein, can be applied to any data transmission. The same benefits of throughput reduction, reliability enhancement, and latency reduction are thus achieved. Further, the proposed approach is not only applicable to wireless communication but any kind of data communications.
[0050] There is proposed herein a method and associated devices for selectively updating compression and decompression buffers. There is proposed a device configured to transmit data packets over a communications network, where the is device configured to selectively update a compression buffer of the device and transmit an indication to a receiver device configured to cause a corresponding update to a decompression buffer. The transmitter device and receiver device may be either of a user device or a base station of a wireless network. By the term ‘selectively’ it is meant that the compression and decompression buffers are updated with only selected packets instead of all packets. For example, the packets may be selected based on the pre-defined criteria. The packets may be added to the buffers in their entirety or specific fragments of the packets may be added to the buffers to further improve the efficient used of the buffer space.
[0051] For example, only a selected packet or one or more of its fragments may be added into the compression and decompression buffer. The transmitting device determines whether a packet or one or more fragments of it should be added into the buffers. This may be based on whether a similar version of the packet already exists in the buffer. That is to say, the determination may be made based on whether the next packet would provide a significant or meaningful amount of new information to the buffers. For example, the degree of similarity may be measured by comparing the compression gain of the next packet to a threshold gain. If the compression gain is larger than the threshold gain it may be concluded that a version of a packet with a certain degree of similarity to the next packet already exists in the buffer. In this example, the next packet is the packet which is going to be transmitted or sent by the transmitter device next in the data communication. It may contain data which can be efficiently compressed in a similar way to a preceding packet, or may contain data which does not resemble, at least in part, a packet previously handled by the compression buffer. If a similar version of a packet does exist in the compression buffer, it can be determined that there is no need to add the next packet into the buffers. The determination of whether the next packet is selected to be added into the buffers is signaled to the receiver side. This may be done, for example, by indicating in the header of the compressed packet itself when sent to the receiver device. That is, the transmitter device may be configured to update the compression buffer to comprise all or part of a data packet to be sent based on a compression efficiency derived from the size of the packet before compression compared to the size of the packet after compression. For example, compression efficiency may be defined as a percentage packet size after compression compared to the uncompressed size. The compression efficiency may be determined for a packet by both using the compression buffer data already having been updated to include the data of the data packet itself and also by using the compression buffer data without having been updated. If the difference between these two efficiencies is above a threshold, in other words if there is a significant gain in the compression by including the data of this packet in the compression buffer, then it can be determined that the packet should be added to the compression buffer of the transmitter device. The transmitter device may therefore be configured to update the compression buffer to comprise all or part of the data packet to be sent only when a compression efficiency gain is above a threshold. However, it should be understood that such a threshold could be set for the any of the values calculated while assessing the effectiveness of including the current packet in the compression buffer. For example, the threshold could relate to a percentage compression, the compression gain, or another closely related value.
[0052] Figure 2A shows a flow diagram of the selective updating of the compression buffer at a transmitter device 102. First, at step 202, an uncompressed packet is received from a lower layer of the transmitter device. The packet is then compressed at step 204 using the compression buffer. At step 206 the determination is made, based on the compression gain of the packet, whether to add the packet to the compression buffer. If the determination is yes, then at step 208 the uncompressed packet is added to the compression buffer and an indication is transmitted to the receiver device to make a corresponding update to its decompression buffer. That is, it is indicated to the receiver device to add the uncompressed packet to its decompression buffer. After the buffers have been updated as needed, the process returns to consideration of the subsequent packet for the same purposes, as shown by arrow 210.
[0053] Figure 2B shows a flow diagram of the selective updating of the decompression buffer at a receiver device 104. First, at step 212, a compressed packet is received in a transmission from a transmitter device 102. The packet is then decompressed in step 214 using the decompression buffer of the receiver device. At step 216, an indication to update the buffer is checked. If the received packet was accompanied by an indication to update the buffer, then at step 218 the decompressed packet is added to the decompression buffer. If no indication to update the buffer was received with the packet, then the process returns via arrow 220 to the start and the subsequently received packet is considered in turn for selective buffer update as described above.
[0054] The receiver device is therefore configured to update a decompression buffer of the receiver device in response to receiving an indication from a transmitter device to update the decompression buffer to comprise all or part of a received data packet.
[0055] Figure 3 shows a message sequence diagram between a transmitter device 102 and a receiver device 104 implementing the proposed selective buffer update process. In an initial stage of the data communication a dictionary set may be agreed upon between the devices 106. The transmitter device 102 may send a compressed packet with an indication to update the compression buffer with the currently transmitted packet 302. As a result, both the transmitter device and the receiver device perform a buffer update with the decompressed packet 304. This process continues for each packet transmitted. If no buffer update is needed, then there may be no indication transmitted. Alternatively, a different indication may be transmitted depending on whether the buffer is to be updated or not updated. It therefore follows that if a data packet is lost which did not include a buffer update indication, then no buffer update is performed at the transmitter or receiver device. Thus, even though a packet is lost, there is no buffer mismatch detected by the receiver device after the next packet is received, and a buffer reset does not happen. This may result in some loss of data and the execution of other error correction processes within the receiver device, but it does not result in a buffer reset to zero. Therefore, the data transmission becomes more robust when faced with packet loss, as the decompression of the next packet is not negatively impacted by a decompression buffer which has been reset to zero.
[0056] The more packets processed by the buffers, the more efficient the compression and decompression is at the communication devices. The resetting to zero of the buffers may have a significant impact on the compression of following packets. However, if the buffers comprise a lot of knowledge, then the frequency of buffer update indications becomes less frequent. This is because the buffer mismatch and subsequent reset to zero will only happen if the lost packet included an indication to update the buffer. I.e. if the transmitter device updated the compression buffer but the receiver device did not update the decompression buffer. Therefore, the proposed approach increases the probability of robustness over time simply by being implemented.
[0057] However, it can be seen that where such a packet is dropped the buffer may still be reset to zero. Therefore, to minimize the impact of a buffer mismatch, there is proposed a further measure. This further measure comprises making a copy of the buffer at each device, also indicated as necessary by the transmitter device to the receiver device.
[0058] The receiver device may be configured to save a copy of the decompression buffer in response to receiving an indication from the transmitter device to copy the decompression buffer. The saved copy of the decompression buffer may be assigned a unique identifier. In response to detecting that a previously transmitted packet has been dropped, the receiver device may be configured to transmit to the transmitter device the unique identifier of the most recently saved decompression buffer copy corresponding to a specific saved copy of the compression buffer. The receiver device may thus be configured to overwrite the current decompression buffer by loading the identified copy of the decompression buffer. The unique identifier may be a checksum of the associated decompression buffer.
[0059] The proposed method therefore comprises selectively updating the compression buffer of a transmitter device to comprise all or part of a data packet to be transmitted. Transmitting, to a receiver device along with the data packet, an indication to make a corresponding update to the decompression buffer. And updating, in response to receiving the indication from the transmitter device, the decompression buffer of the receiver device to comprise all or part of the transmitted data packet. Selectively updating the compression buffer may be based on a compression efficiency derived from the size of the packet before compression compared to the size of the packet after compression. For example, the method may comprise selecting to update the compression buffer only when the compression efficiency gain is above a threshold.
[0060] Figure 4 shows a message sequence diagram between a transmitter device 102 and a receiver device 104 implementing the proposed selective buffer update and a buffer copy saving process. At a first step 106 a dictionary may be agreed between the sender device 102 and receiver device 104. Compressed packets may then be transmitted from the sender device to the receiver device. As described above, the buffers of the sender device and the receiver device may be selectively updated and an indication to update sent along with the transmission of the compressed packet. At a certain point in time, the sender device may make a copy of the current compression buffer 402 and indicate to the receiver device to also copy its decompression buffer 404 along with the next packet transmission. Therefore, the copy at the receiver device should be the same as the copy saved by the sender device. If a packet indicating to update the decompression buffer is lost, the loss is detected following the next successfully transmitted packet by a buffer mismatch, and a buffer copy can be loaded. This is performed instead of resetting the buffers to zero. The sender device may keep multiple copied versions of the buffer. This may be done in case the lost packet also indicated to make a copy of the decompression buffer and as such the most recent compression buffer copy does not match the most recent decompression buffer copy.
[0061] When packet loss happens, the receiver detects the mismatch of the compression buffer and the decompression buffer 406. For example, this may be achieved by comparison of a checksum of the compression buffer and a checksum of the decompression buffer. When a mismatch is detected an error, notification is sent to the sender device 408. The notification may contain the identifier of the receiver device’s most recently saved buffer copy. Upon receiving the error notification, the sender device may then use the buffer copy identifier sent in the error message to select a compression buffer copy and load it to the compression buffer for the compression of future packets 410. That is, in response to receiving an indication from the receiver device that a previously transmitted data packet has been dropped, the sender device may be configured to overwrite the current compression buffer by loading a previously saved copy of the compression buffer. The receiver device may also load the copy of the decompression buffer to which the identifier belongs and use the reloaded buffer to decompress future packets 412.
[0062] Thus, the proposed device may be configured to save a copy of the compression buffer each time all or part of a data packet to be sent is added to the compression buffer and transmit an indication to the receiver device to save a copy of the decompression buffer. The indication of a buffer update may also be considered as an indication to copy the buffer. Alternatively, the copy of the buffer may be indicated separately to the buffer update. For example, copying of the buffer may be indicated based on a number of packets sent since the last buffer copy was saved or the frequency of buffer updates, etc.
[0063] The sender device may be configured to assign each saved copy of the compression buffer a unique identifier and transmit the identifier to the receiver device. The unique identifier may be the checksum of the buffer data. Alternatively, a different identifier may be specifically generated and assigned to each copy of the buffer along with the indication to save a copy. The identifier in this case may only be transmitted to the receiver device when saving a copy of the buffer is needed. It is noted that the checksum of the buffer is sent each time a packet is transmitted in the current standard. Thus, when the receiver device gets the indication to save a copy of the buffer it should already know the identifier of the buffer to save. Therefore, it is proposed that use of the checksum to identify the buffer copy, as it is already transmitted to identify buffer mismatches due to dropped packets, is an efficient way to implement the proposed idea. However, dedicated identifiers may be used instead such as any unique character string or unique number arranged to act as a unique identifier. The sender device may be configured to receive the unique identifier corresponding to a specific saved copy of the compression buffer and overwrite the current compression buffer by loading the identified previously saved copy of the compression buffer. For example, in the case that a dropped packet included a copy buffer indication, the most recent saved copy of the compression buffer may not be the same as the most recent copy at the receiver device. The sender device may be configured to save at least one previous copy of the compression buffer. The sender device may be configured to save at least two previous copies of the compression buffer.
[0064] The proposed method may therefore also comprise saving a copy of the compression buffer at the transmitter device each time the compression is updated. Transmitting an indication to the receiver device to save a copy of the decompression buffer at the receiver device. And saving a copy of the decompression buffer at the receiver device in response to receiving the indication. The method may also comprise assigning to the copy of the compression buffer a unique identifier, transmitting the identifier to the receiver device, and assigning the identifier to the corresponding copy of the decompression buffer at the receiver device.
[0065] Therefore, in response to detecting at the receiver device that a previously transmitted packet has been dropped, the method may comprise transmitting from the receiver device to the transmitter device an indication that a previously transmitted data packet has been dropped. As a result, causing the transmitter device to overwrite the current compression buffer by loading a previously saved copy of the compression buffer.
[0066] The indication may comprise the unique identifier of the most recently saved decompression buffer copy which also corresponds to a specific saved copy of the compression buffer. The proposed method may thus comprise overwriting at the transmitter device the current compression buffer by loading the identified specific saved copy of the compression buffer.
[0067] There is further proposed herein a dictionary-based approach which uses a dictionary set already agreed at the beginning of a data communication. However, in the proposed approach the dictionary set is reconfigurable such that it can adapt depending on the type of data within the communication, e.g. at the time of packet loss. In the case of packet loss, the reconfigurable dictionary can be used to supplement the compression and decompression buffers which may otherwise be set to zero.
[0068] Figure 5 shows a message sequence diagram between a transmitter device 102 and a receiver device 104 implementing the proposed reconfigurable dictionary set. Initially, a set of dictionaries is agreed between the sender device and the receiver device 502. Each dictionary of the set may be uniquely identifiable by the receiver device, for example, by a checksum value or a sequence number. The identifier could be any unique number or character string arranged to act as a unique identifier. As described above, the buffers in the sender device and the receiver device may be selectively updated with an indication of the buffer update provided along with the transmission of the compressed packet. When packet loss happens 504, the receiver device may detect the mismatch of the compression buffer and the decompression buffer 506 as described above and send an error notification 508 to the sender device. Upon receiving the error notification, the sender device may be configured to select a dictionary from the previously agreed set 510. The selected dictionary set may be loaded to the compression buffer instead of e.g. resetting the buffer to zero. The dictionary selection can be optimized for the best compression ratio or gain based on data traffic characteristics. The data traffic characteristics may be determined by the sender device. The sender device may then use the reloaded buffer for the compression of further packets. The sender device may then transmit a compressed packet using the reloaded buffer and transmit along with it an identifier indicating the reselection of a dictionary and the specific dictionary selected 512. The receiver device may then use the dictionary identifier provided by the sender device to identify and select the same dictionary and load it to the decompression buffer 514.
[0069] For the dictionary based proposed approach for buffer reloading, the sender device is capable of specifying a reconfigurable dictionary set to the receiver device. This set may be transmitted at the beginning of the data communication similar to the standard process for setting a dictionary. The specification of the set of dictionaries may comprise the number of dictionaries and their size. The receiver device is capable of indicating to the sender device that a reconfigurable dictionary is an option for compression configuration if needed and providing the data of the set of dictionaries.
[0070] The sender device may be configured to agree a pre-defined dictionary set for use with the receiver device and, in response to receiving an indication from the receiver device that a previously transmitted data packet has been dropped, overwrite the current compression buffer by loading a dictionary from the pre-defined set. The sender device may be configured to transmit an identifier to the receiver device identifying which dictionary of the pre-defined set has been loaded to the compression buffer. The sender device may be configured to transmit the identifier to the receiver device with the next compressed data packet. The sender device may be configured to select a dictionary from the pre-defined set of dictionaries based on the type of data being transmitted. The receiver device may be configured to agree a pre-defined dictionary set for use with the transmitter device and, in response to receiving an indication from the transmitter device identifying a dictionary of the pre-defined set, overwrite the current decompression buffer by loading the identified dictionary to the decompression buffer.
[0071] The proposed method may therefore comprise agreeing between the transmitter device and the receiver device a pre-defined dictionary set for use. The receiver device may then generate an error notification in response to detecting at the receiver device that a previously transmitted packet has been dropped. The method may then proceed by transmitting the error notification from the receiver device to the transmitter device and overwriting the current compression buffer of the transmitter device by selecting and loading a dictionary of the pre-defined set. A complementary process may then be performed by the receiver device by transmitting an identifier from the transmitter device to the receiver device identifying which dictionary of the pre-defined set has been loaded to the compression buffer. The receiver device may then continue by overwriting the current decompression buffer by loading the identified dictionary to the decompression buffer in response to receiving the indication at the receiver device from the transmitter device.
[0072] The selecting of a dictionary of the pre-defined set of dictionaries may be based on the type of data being transmitted by the transmitter device. Further, the actions of assigning or transmitting the identifier may comprise generating the identifier by executing a checksum function on the identified quantity. That is, depending on what is being identified, for example a buffer copy or a dictionary, the identifier may be generated by performing a checksum function on the buffer copy or the selected dictionary.
[0073] The above proposed approaches for enhancing buffer efficiency and robustness are presented for possible use in 3GPP standard settings. Devices in this case may be a user equipment and a base station of the wireless network. For example, the sender device or transmitter device may be a user equipment and the receiver device may be a base station or node of the wireless network.
[0074] Figure 6 illustrates how an existing UDC header and data block may be utilized to implement the proposed buffer enhancements. Specifically, by utilizing two reserved bits 602. One of the reserved bits may be used as the indication of buffer update as described above. The other reserved bit can be used to provide the indication of buffer copying as described above. Additionally, extra header information may be included to indicate a specific packet fragment to be added to the corresponding buffer. For example, a start location and length of fragment may be the format of such a fragment indication.
[0075] Figure 7 illustrates how an existing PDCP Control PDU format for UDC feedback may be utilized to implement the proposed buffer enhancements. For example, by using a plurality of reserved bits 702. For example, the reserved bits may be used by the receiver device to specify the identifier of the buffer copy to be loaded for transmitting to the sender device.
[0076] It should be understood that in alternative implementations of the proposed ideas, the indications may be placed in other appropriate data constructs depending on the implementation architecture.
[0077] Thus, the sender device may be configured to generate the data packet to be sent comprising an indicator in one or more reserved fields of the data packet to indicate to the receiver device that the decompression buffer should be updated. The one or more reserved fields may also comprise an indication of the part of the data packet to be added to the decompression buffer by indicating its start point and length. As described above, the unique identifier may be a checksum of the associated compression buffer.
[0078] In response to detecting that a previously transmitted packet has been dropped, the receiver device may be configured to generate an error notification comprising the unique identifier in one or more reserved fields of a feedback packet.
[0079] The proposed selective update of compression buffer and decompression buffer comprising signalling for buffer update from sender device to receiver device has the advantage of significantly reducing the probability of a buffer mismatch in the case of dropped packets and reducing the probability of dropping of the following packets. This is because, in existing approaches the compression buffer is continuously updated for each packet. Therefore, a drop of one packet will surely prevent the following packet from being decompressed as the receiver buffer is outdated. Thus there will be a subsequent packet drop. With the proposed selective buffer update, the buffers are not updated frequently. Thus after a packet drop, if the dropped packet doesn’t contain the buffer update indicator the receiver buffer is still valid. Therefore, it’s likely that the following packet will still be able to be decompressed.
[0080] The proposed selective updating rule based on the compression ratio of the packets has the advantage of avoiding multiples of or similar features of packets being saved in the buffer which can lead to low compression ratio. This is due to the limited total size of the buffer and the potential for useful packets to be pushed from the buffer memory when it’s full by many new packets which may all be very similar and thus not as useful for informing compression / decompression.
[0081] In the proposed approach of saving buffer copies, the signalling for buffer copying from the sender device to the receiver device and the signalling of error feedback being accompanied by the identifier of the buffer copy has the advantage of the compression gain not being influenced as much by a buffer mismatch. Error recovery is more efficient and a high compression gain is preserved.
[0082] In the proposed approach of a reconfigurable dictionary set using RRC signalling there is enabled a flexible selection of the dictionaries for adapting to various data traffic types, for example machine-type data versus audio and video traffic types.
[0083] The applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims. The applicant indicates that aspects of the present invention may consist of any such individual feature or combination of features. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the invention.
Claims
CLAIMS1 . A device configured to transmit data packets over a communications network, the device configured to selectively update a compression buffer of the device and transmit an indication to a receiver device to make a corresponding update to a decompression buffer.
2. The device of claim 1 , wherein the device is configured to update the compression buffer to comprise all or part of a data packet to be sent based on a compression efficiency derived from the size of the packet before compression compared to the size of the packet after compression.
3. The device of claim 2, wherein the device is configured to update the compression buffer to comprise all or part of the data packet to be sent only when the compression efficiency gain is above a threshold.
4. The device of any preceding claim, wherein the device is configured to save a copy of the compression buffer each time all or part of a data packet to be sent is added to the compression buffer and transmit an indication to the receiver device to save a copy of the decompression buffer.
5. The device of claim 4, wherein the device is configured to assign each copy of the compression buffer a unique identifier and transmit the identifier to the receiver device.
6. The device of claim 4 or 5, wherein, in response to receiving an indication from the receiver device that a previously transmitted data packet has been dropped, the device is configured to overwrite the current compression buffer by loading a previously saved copy of the compression buffer.
7. The device of claim 5 or 6, wherein the device is configured to receive the unique identifier corresponding to a specific saved copy of the compression buffer and overwrite the current compression buffer by loading the identified previously saved copy of the compression buffer.
8. The device of any of claims 4 to 7, wherein the device is configured to save at least one previous copy of the compression buffer.
9. The device of any of claims 1 to 3, wherein the device is configured to agree a pre-defined dictionary set for use with the receiver device and, in response to receiving an indication fromthe receiver device that a previously transmitted data packet has been dropped, overwrite the current compression buffer by loading a dictionary from the pre-defined set.
10. The device of claim 9, wherein the device is configured to transmit an identifier to the receiver device identifying which dictionary of the pre-defined set has been loaded to the compression buffer.
11. The device of claim 10, wherein the device is configured to transmit the identifier to the receiver device with the next compressed data packet.
12. The device of any of claims 9 to 11 , wherein the device is configured to select a dictionary from the pre-defined set of dictionaries based on the type of data being transmitted.
13. The device according to any preceding claim, wherein the device is configured to generate the data packet to be sent comprising an indicator in one or more reserved fields of the data packet to indicate to the receiver device that the decompression buffer should be updated.
14. The device of claim 13, wherein the one or more reserved fields also comprise an indication of the part of the data packet to be added to the decompression buffer by indicating its start point and length.
15. The device of any of claims 5 to 14, wherein the unique identifier is a checksum of the associated compression buffer.
16. A device configured to receive data packets over a communications network, the device configured to update a decompression buffer of the device in response to receiving an indication from a transmitter device to update the decompression buffer to comprise all or part of a received data packet.
17. The device of claim 16, wherein the device is configured to save a copy of the decompression buffer in response to receiving an indication from the transmitter device to copy the decompression buffer.
18. The device of claim 16 or 17, wherein the saved copy of the decompression buffer is assigned a unique identifier.
19. The device of any of claims 16 to 18, wherein, in response to detecting that a previously transmitted packet has been dropped, the device is configured to transmit to the transmitter device the unique identifier of the most recently saved decompression buffer copy corresponding to a specific saved copy of the compression buffer.
20. The device of claim 19, wherein the device is configured to overwrite the current decompression buffer by loading the identified copy of the decompression buffer.
21. The device of claim 17 to 20, wherein, in response to detecting that a previously transmitted packet has been dropped, the device is configured to generate an error notification comprising the unique identifier in one or more reserved fields of a feedback packet.
22. The device of any of claims 18 to 21 , wherein the unique identifier is a checksum of the associated decompression buffer.
23. The device of claim 16, wherein the device is configured to agree a pre-defined dictionary set for use with the transmitter device and, in response to receiving an indication from the transmitter device identifying a dictionary of the pre-defined set, overwrite the current decompression buffer by loading the identified dictionary to the decompression buffer.
24. A method for synchronising a compression buffer and a decompression buffer during a process of transmitting data packets over a communications network, the method comprising: selectively updating the compression buffer of a transmitter device to comprise all or part of a data packet to be transmitted; transmitting, to a receiver device along with the data packet, an indication to make a corresponding update to the decompression buffer; and updating, in response to receiving the indication from the transmitter device, the decompression buffer of the receiver device to comprise all or part of the transmitted data packet.
25. The method of claim 24, wherein the method comprises selectively updating the compression buffer based on a compression efficiency derived from the size of the packet before compression compared to the size of the packet after compression.
26. The method of claim 25, wherein the method comprises selecting to update the compression buffer only when the compression efficiency gain is above a threshold.
27. The method of any of claims 24 to 26, wherein the method comprises saving a copy of the compression buffer at the transmitter device each time the compression is updated; transmitting an indication to the receiver device to save a copy of the decompression buffer at the receiver device; and saving a copy of the decompression buffer at the receiver device in response to receiving the indication.
28. The method of claim 27, wherein the method comprises assigning to the copy of the compression buffer a unique identifier, transmitting the identifier to the receiver device, and assigning the identifier to the corresponding copy of the decompression buffer at the receiver device.
29. The method of claim 27 or 28, the method comprising, in response to detecting at the receiver device that a previously transmitted packet has been dropped, transmitting from the receiver device to the transmitter device an indication that a previously transmitted data packet has been dropped, causing the transmitter device to overwrite the current compression buffer by loading a previously saved copy of the compression buffer.
30. The method of claim 29, wherein the indication comprises the unique identifier of the most recently saved decompression buffer copy corresponding to a specific saved copy of the compression buffer, and the method comprises overwriting at the transmitter device the current compression buffer by loading the identified specific saved copy of the compression buffer.
31. The method of any of claims 24 to 26, wherein the method comprises: agreeing between the transmitter device and the receiver device a pre-defined dictionary set for use; generating by the receiver device an error notification in response to detecting at the receiver device that a previously transmitted packet has been dropped; transmitting the error notification from the receiver device to the transmitter device; overwriting the current compression buffer of the transmitter device by selecting and loading a dictionary of the pre-defined set; transmitting an identifier from the transmitter device to the receiver device identifying which dictionary of the pre-defined set has been loaded to the compression buffer; and overwriting the current decompression buffer by loading the identified dictionary to the decompression buffer in response to receiving the indication at the receiver device from the transmitter device.
32. The method of claim 31 , wherein selecting a dictionary of the pre-defined set of dictionaries is based on the type of data being transmitted.
33. The method of any of claims 28 to 32, wherein assigning or transmitting the identifier comprises generating the identifier by executing a checksum function on the identified quantity.
Citation Information
Patent Citations
Processing method and device for cache synchronous exception
US20200344644A1
Buffer control method and user equipment
US20230247481A1