CN114979707B - Data transmission method and device - Google Patents
Data transmission method and device Download PDFInfo
- Publication number
- CN114979707B CN114979707B CN202210519970.7A CN202210519970A CN114979707B CN 114979707 B CN114979707 B CN 114979707B CN 202210519970 A CN202210519970 A CN 202210519970A CN 114979707 B CN114979707 B CN 114979707B
- Authority
- CN
- China
- Prior art keywords
- data
- historical
- value
- sent
- historical data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000005540 biological transmission Effects 0.000 title claims abstract description 84
- 238000012549 training Methods 0.000 claims abstract description 30
- 238000004891 communication Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 12
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The embodiment of the application provides a data sending method and device, wherein the method comprises the following steps: firstly, acquiring a video to be transmitted, and splitting the video to be transmitted into at least one data block; secondly, matching the data value of the at least one data block with a data dictionary, and determining a replacement value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to data value training of a historical data block; finally, the replacement value of the at least one data block is sent to a receiving end; the receiving end receives the replacement value of at least one data block from the transmitting end; and the receiving end matches the replacement value of at least one data block with the data dictionary to determine the data value corresponding to the data block. By adopting the method, the video transmission can be effectively and reasonably compressed, so that the video transmission rate is improved.
Description
Technical Field
The application belongs to the technical field of communication, and particularly relates to a data sending method and device.
Background
Streaming media refers to a media format that is played on the internet in a streaming manner, also known as streaming media. The video code to be played by a video transmission server for the business is packaged into data packets to be transmitted to the Internet, and a user can decode the video of the corresponding data packets in the Internet through a client and play the video obtained by decoding. At present, a Real-time transmission protocol (Real-time Transport Protocol, RTP) is mostly adopted to transmit streaming media data, so as to ensure the Real-time performance of transmission. In the streaming media video transmission process, the streaming media video is analyzed frame by frame and sent frame by frame, the problem of video transmission delay can occur, and the occurrence efficiency of the video is reduced. How to improve the video transmission efficiency is a problem to be solved.
Disclosure of Invention
The embodiment of the application provides a data sending method and device, which are used for training data values of a plurality of historical data blocks to obtain a data dictionary, compressing the data blocks with the same size as the historical data blocks in a video to be sent according to the data dictionary and then sending the compressed data blocks to a receiving end, so that the sending rate of the video is improved.
In a first aspect, an embodiment of the present application provides a data sending method, where the method is applied to a sending end, and the method includes: acquiring a video to be sent, and splitting the video to be sent into at least one data block; matching the data value of at least one data block with a data dictionary, and determining a replacement value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to the data value training of the historical data block; and transmitting the replacement value of at least one data block to the receiving end.
In one possible example, a plurality of historical to-be-transmitted videos are acquired, and each of the plurality of historical to-be-transmitted videos is split into at least one historical data block; carrying out probability statistics of historical data values on at least one historical data block of each historical video to be sent, and determining occurrence probability of the historical data values; and determining a replacement value corresponding to the historical data value according to the occurrence probability of the historical data value of each historical video to be transmitted in the plurality of historical videos to be transmitted, and generating a data dictionary.
In one possible example, the replacement value corresponding to the historical data value is an index value, and the index value is ranked from high to low according to the occurrence probability of the historical data value.
In one possible example, the replacement value of at least one data block is transmitted to the receiving end, and the number of marks is added according to the number of transmissions of the replacement value.
In a second aspect, an embodiment of the present application provides a data sending method, where the method is applied to a receiving end, and the method includes: receiving a replacement value of at least one data block from a transmitting end; and matching the replacement value of at least one data block with the data dictionary, and determining the data value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to the data value training of the historical data block.
In one possible example, a plurality of historical to-be-transmitted videos are acquired, and each of the plurality of historical to-be-transmitted videos is split into at least one historical data block; carrying out probability statistics of historical data values on at least one historical data block of each historical video to be sent, and determining occurrence probability of the historical data values; and determining a replacement value corresponding to the historical data value according to the occurrence probability of the historical data value of each historical video to be transmitted in the plurality of historical videos to be transmitted, and generating a data dictionary.
In one possible example, the replacement value corresponding to the historical data value is an index value, and the index value is ranked from high to low according to the occurrence probability of the historical data value.
In one possible example, receiving the replacement value for the at least one data block further includes receiving a number of flags for the replacement value, the number of flags being used to flag a number of transmissions of the replacement value, the method further comprising: and determining the packet loss condition of at least one data block according to the marking times of the replacement values.
In a third aspect, an embodiment of the present application provides a data transmitting apparatus, which is applied to a transmitting end, including:
the acquisition unit is used for acquiring the video to be transmitted and splitting the video to be transmitted into at least one data block;
the matching unit is used for matching the data value of at least one data block with the data dictionary, and determining a replacement value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to the data value training of the historical data block;
and the sending unit is used for sending the replacement value of at least one data block to the receiving end.
In a fourth aspect, an embodiment of the present application provides a data sending apparatus, which is applied to a receiving end, and includes:
a receiving unit, configured to receive a replacement value of at least one data block from a transmitting end;
And the matching unit is used for matching the replacement value of at least one data block with the data dictionary, determining the data value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to the data value training of the historical data block.
In a fifth aspect, embodiments of the present application provide an electronic device, where the device includes a processor, a memory, and a communication interface, where the processor, the memory, and the communication interface are connected to each other and perform communication therebetween, the memory stores executable program code, the communication interface is configured to perform wireless communication, and the processor is configured to retrieve the executable program code stored in the memory and perform, for example, some or all of the steps described in any of the methods of the first aspect.
In a sixth aspect, embodiments of the present application provide a computer readable storage medium having stored therein program data which, when executed by a processor, is adapted to carry out the program data to carry out some or all of the steps described in the first or second aspects of the embodiments of the present application.
In a seventh aspect, embodiments of the present application provide a computer program product, wherein the computer program product comprises a non-transitory computer readable storage medium storing a computer program operable to cause a computer to perform part or all of the steps as described in the first or second aspects of the embodiments of the present application. The computer program product may be a software installation package.
It can be seen that in the embodiment of the present application, a video to be sent is first obtained, and the video to be sent is split into at least one data block; secondly, matching the data value of the at least one data block with a data dictionary, and determining a replacement value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to data value training of a historical data block; finally, the replacement value of the at least one data block is sent to a receiving end; the receiving end receives the replacement value of at least one data block from the transmitting end; and the receiving end matches the replacement value of at least one data block with the data dictionary to determine the data value corresponding to the data block. By adopting the method, the video to be sent can be compressed rapidly and effectively, and the video sending rate is further improved.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings that are required in the embodiments or the description of the prior art will be briefly described below, it being obvious that the drawings in the following description are only some embodiments of the present application, and that other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
Fig. 1 is a schematic structural diagram of a data transmission system according to an embodiment of the present application;
fig. 2 is a flow chart of a data sending method provided in an embodiment of the present application;
fig. 3 is a schematic structural diagram of a data dictionary according to an embodiment of the present application;
fig. 4 is a schematic structural diagram of a video to be sent according to an embodiment of the present application;
fig. 5a is a functional unit block diagram of a data transmission device according to an embodiment of the present application;
fig. 5b is a functional unit block diagram of another data transmission device according to an embodiment of the present application;
fig. 6a is a functional unit block diagram of a data transmission device according to an embodiment of the present application;
fig. 6b is a functional unit block diagram of another data transmission device according to an embodiment of the present application;
fig. 7 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
In order to make the present application solution better understood by those skilled in the art, the following description will clearly and completely describe the technical solution in the embodiments of the present application with reference to the accompanying drawings in the embodiments of the present application, and it is apparent that the described embodiments are only some embodiments of the present application, not all embodiments. All other embodiments, which can be made by one of ordinary skill in the art based on the embodiments herein without making any inventive effort, are intended to be within the scope of the present application.
The terms first, second and the like in the description and in the claims of the present application and in the above-described figures, are used for distinguishing between different objects and not for describing a particular sequential order. Furthermore, the terms "comprise" and "have," as well as any variations thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, system, article, or apparatus that comprises a list of steps is not limited to the elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
Reference herein to "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present application. The appearances of such phrases in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Those of skill in the art will explicitly and implicitly appreciate that the embodiments described herein may be combined with other embodiments.
Streaming video can currently be transported over a network with acceleration in order to consume less bandwidth and ensure faster delivery. The output video of the receiving end will be a video having the same file format as the original video transmitted by the transmitting end and have the same visual quality as the original video. In the streaming media video transmission process, the streaming media video is analyzed frame by frame and sent frame by frame, and problems such as delay, packet loss, frame loss and the like may occur.
In order to solve the above-mentioned technology, the embodiment of the application provides a data sending method, which is applied to a video sending terminal, and can reduce the probability of delay, packet loss and frame loss by splitting a video to be sent into data blocks with the same length, replacing the data values of the data blocks with corresponding replacement values in a data dictionary, and sending the data blocks to a receiving terminal. The method and the system can be applied to computer systems of enterprises, for example, the server of the enterprises can send videos to users by adopting the method provided by the embodiment of the application, so that the business capability of the enterprises can be effectively enhanced, and the use experience of the users can be enhanced. The present application may be applicable to a variety of scenarios requiring video transmission from a transmitting end to a receiving end, including but not limited to the application scenarios mentioned above.
The system architecture according to the embodiments of the present application is described below.
Referring to fig. 1, fig. 1 is a schematic structural diagram of a data transmission system according to an embodiment of the present application, as shown in fig. 1,
the system comprises a video information acquisition device, a video information transmission device and a video information receiving device. The video information acquisition device is used for acquiring video information to be transmitted. The video information sending device is used for splitting the video information to be sent, replacing the data value of the split data block, and finally sending the data block with the replaced data value to the video receiving device, wherein the video sending device can be a server. The video receiving device is used for receiving the data block sent by the video sending device, converting the replacement value of the data block into a data value, and decoding the data value to generate a video file, wherein the video receiving device can be user equipment.
The operation engineering of the data transmission system specifically comprises the following steps: the video information acquisition device acquires video information to be transmitted, the video information transmission device splits the video information to be transmitted into a plurality of data blocks, replaces data values of the plurality of data blocks with replacement values, transmits the plurality of data blocks to the video information receiving device, and the video information receiving device restores the replacement values of the plurality of data blocks to the data values and decodes the data values to generate a video file.
The data transmission method is specifically described below:
referring to fig. 2, fig. 2 is a flow chart of a data transmission method provided in an embodiment of the present application, where the data transmission method is applied to a transmitting end, and the transmitting end is communicatively connected to a receiving end, as shown in fig. 2, and the method includes the following steps:
in step 201, the transmitting end obtains a video to be transmitted, and splits the video to be transmitted into at least one data block.
The video to be sent refers to a video file that needs to be sent to a receiving end through a sending end in a sending end server, the video to be sent can be a historical uploading video or a real-time live video, and the file format of the video file can be an MP4 format, an audio-video interleaving format (Audio Video Interleaved, AVI for short), a Windows media video format (Windows Media Video, WMV for short), a MKV file format (MKV for short), or the like. Splitting the video to be transmitted into at least one data block refers to splitting the video to be transmitted into at least one data block of the same size, alternatively the size of the data block may be 16 bytes.
Step 202, the transmitting end matches the data value of at least one data block with the data dictionary, and determines the replacement value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to the data value training of the historical data block.
The transmission speed of a data block is generally determined by the data value of the data block. The larger the data value of the data block is, the slower the sending speed of the data block is; the smaller the data value of the data block, the faster the data block is transmitted. The data value size of a data block is generally determined by the size of its data block. Illustratively, if the data block is 16 bytes in size, one byte being equivalent to an 8-bit binary bit, then the data value of the data block may be any one of 128-bit binary numbers, i.e., the range of data values for the data block is [0, (2≡128) -1]. The foregoing examples are provided merely for the purpose of illustrating embodiments of the present application and should not be construed as limiting the scope of the present application.
In order to increase the transmission speed of the data block, the data value of the data block can be replaced by other replacement values which are much smaller than the data value, so that the transmission speed can be effectively increased when the data block is transmitted. The replacement value corresponding to the data value stored in the data dictionary is obtained through training by a special training method, and the size of the replacement value is far smaller than that of the data value.
In the embodiment of the present application, the data dictionary is obtained by training historical data, where the historical data may be a plurality of (different types of) video files divided into data blocks with the same size (optionally, the size may be 16 bytes), and training is performed to determine a distribution rule or occurrence probability of data values of each data block in each video file, so as to determine a replacement value corresponding to each data value, thereby obtaining the data dictionary. Therefore, the data dictionary contains a large number of data values and corresponding replacement values, and in general, the data values and the corresponding replacement values used when the transmitting end transmits the video file to the receiving end are only a part of the data dictionary.
If the transmitting end and the receiving end adopt the same historical data for training, the same data dictionary can be obtained, or the transmitting end transmits the data dictionary to the receiving end after the first training to obtain the data dictionary. Therefore, no matter how many times of video files are transmitted by the transmitting end, the data dictionary does not need to be repeatedly transmitted, the resource occupation of the transmitting end for transmitting data can be further reduced, and the time delay of data transmission is reduced.
For example, referring to fig. 3, fig. 3 is a schematic structural diagram of a data dictionary according to an embodiment of the present application. As shown in fig. 3, a data dictionary 30 is included, and a data value 301 of a data block and a replacement value 302 corresponding to the data value 301 are included in the data dictionary 30. Wherein each of the different data values 301, or a range of data values (e.g., N-N + t is a range of data values) 301 has a uniquely corresponding replacement value 302, when the data value of at least one data block matches the data dictionary 30, the data value of at least one data block matches the same data value 301 in the data dictionary 30, thereby determining the replacement value 302 corresponding to the data value 301.
The following describes the generation process of the data dictionary in detail:
in one possible embodiment, a plurality of historical to-be-transmitted videos are acquired, and each historical to-be-transmitted video in the plurality of historical to-be-transmitted videos is split into at least one historical data block; carrying out probability statistics of historical data values on at least one historical data block of each historical video to be sent, and determining occurrence probability of the historical data values; and determining a replacement value corresponding to the historical data value according to the occurrence probability of the historical data value of each historical video to be transmitted in the plurality of historical videos to be transmitted, and generating a data dictionary.
In one possible embodiment, the replacement value corresponding to the historical data value is an index value, and the index value is ranked from high to low according to the occurrence probability of the historical data value.
The generation of the data dictionary is a training process for a large number of historical videos to be sent. A large number of historical video to be transmitted is split into data blocks of the same size, resulting in a number of data blocks of the same or different data values, but all between a range of data values, depending on the size of the data blocks. And then counting the occurrence probability of each different data value in each historical video to be transmitted, and determining the corresponding replacement value of the data value according to the occurrence probability of each different data value. The same data value in the plurality of historic videos to be sent has different occurrence probabilities, and the following scheme is available for determining the occurrence probability of the data value according to the plurality of historic videos to be sent:
firstly, summarizing all data values in a plurality of videos to be sent, finally, sorting to obtain all different data values and the number of each data value, and obtaining the occurrence probability of each data value according to the ratio of the number of each data value to the total number of the data values. Secondly, considering that the occurrence probabilities of different data values are different when different videos are split into data blocks with the same size, different data values in each video to be transmitted can be sorted respectively to obtain the occurrence probabilities of different data values in a single video to be transmitted, and finally, the maximum value of the occurrence probabilities of the same data values in each video to be transmitted is selected as the occurrence probability of the data values.
When the occurrence probability of the data value is obtained through statistics, the replacement value needs to be determined according to the occurrence probability of the data value, wherein the replacement value also refers to an index value, each different data value has a unique index value, and the data value of the data block can quickly find the corresponding index value when the data dictionary matching is performed. If the occurrence probability of the data value d is higher, the data block with the data value d is more when the video to be transmitted is split into the data blocks with the same size, and if the data value d is replaced by a smaller index value, the data transmission efficiency is increased.
For example, referring to fig. 4, fig. 4 is a schematic structural diagram of a video to be sent according to an embodiment of the present application, and as shown in fig. 4, the structure diagram includes a historical video to be sent 40. The historical video 40 to be sent is split into 9 data blocks with the same size, and the original binary values of nine data blocks with the same size are converted into decimal values, wherein the data values of 9 data blocks in the historical video 40 to be sent are 999, 997, 999, 998, 997 and 999 respectively.
The setting of the data value corresponding to the replacement value is performed according to the occurrence probability of the data value in the video to be transmitted. Taking the historical video 40 to be sent as an example, there are three different data values in the historical video 40 to be sent, namely 999, 997 and 998, and the occurrence probability of the three data values in the historical video 40 to be sent needs to be determined by the number of the three data values, 999 (4), 997 (2) and 998 (3) can be obtained, and 999 (44%), 997 (22%) and 998 (33%) can be obtained by the ratio of the number of each data value and the total data value, the occurrence probability of the three data values is ordered as n (999) > n (998) > n (997) (n is the occurrence probability), and as the occurrence probability of the data value is larger, the corresponding replacement value is smaller, the replacement values of 999, 997 and 998 can be respectively set as 1, 3 and 2, and P (1) < P (2) < P (3), wherein P represents the space occupied by the index value.
The embodiment of the application trains the data dictionary through a large number of historical videos to be sent, namely, the data dictionary is determined according to the occurrence probability of each data value in the historical videos to be sent. A history to-be-transmitted video 41 similar to the history to-be-transmitted video 40 is acquired (the history to-be-transmitted video 41 is not shown in the figure), and the data values of nine data blocks of the history to-be-transmitted video 41 are 999, 997, 998, 999, 997, 998, 997, 999, respectively, in the same manner as the history to-be-transmitted video 40.
The probability of occurrence is determined for the data value according to the first method described above. At this time, the data values of the video 40 to be sent and the video 41 to be sent are summarized to obtain 999, 997, 999, 998, 997, 999, 997, 998, 999, 997, 998, 997, 999, and the corresponding data values are sorted to obtain 999 (7), 997 (6), and 998 (5), and finally 999 (47%), 997 (33%), 998 (28%), and the occurrence probability of 999, 997, 998 is sorted to obtain n (999) > n (997) > n (998), at this time, the replacement values of 999, 997, and 998 can be set to 1, 2, and 3, respectively, and P (1) < P (2) < P (3), wherein P represents the space occupied by the index value.
The probability of occurrence is determined from the data values according to the second method described above. Namely, firstly, sorting different data values in the historical to-be-sent video 40 and the historical to-be-sent video 41 respectively to obtain the occurrence probability 999 (44%), 997 (22%), 998 (33%), the occurrence probability 999 (33%), 997 (44%), 998 (22%) of the data value in the historical to-be-sent video 41, and selecting the maximum value of the occurrence probability of the same data value in the historical to-be-sent video 40 and the historical to-be-sent video 41 as the occurrence probability of the data value to obtain 999 (44%), 997 (44%), 998 (33%). The occurrence probabilities of 999, 997, 998 are ordered to give n (999) =n (997) > n (998), and since the occurrence probabilities of data values 999 and 997 are equal, the index values of data values 999, 997, and 998 may be set to 1, 2, and 3, respectively, or the index values of data values 999, 997, and 998 may be set to 2, 1, and 3, respectively. Index value 1 may be represented as a binary value 1, index value 2 may be represented as a binary value 10, index value 3 may be represented as a binary value 11, and P (1) < P (2) < P (3), where P represents the amount of space occupied by the index value. An increase in index value, an increase in occupied space (stepwise)
The specific case may be discussed as to whether the index values of data values 999 and 997 are set to 1 and 2, respectively, or whether the index values of data values 999 and 997 are set to 2 and 1, respectively. The size of the index value is determined, for example, from the size of the probability of transmission of the reference data values 999 and 997 in different videos to be transmitted. In the historical video to be transmitted 40, the occurrence probability of the data value 999 is 44%, the occurrence probability of the data value 997 is 22%, but in the historical video to be transmitted 41, the occurrence probability of the data value 999 is 33%, and the occurrence probability of the data value 997 is 44%, it can be found that the second largest occurrence probability 22% of the data value 997 is smaller than the second largest occurrence probability 33% of the data value 999, in contrast, even in the case where different videos to be transmitted are split into the same data block, the probability of obtaining the data value 999 is larger than the data value 997, and therefore the data value 999 and 997 index values should be set to 1 and 2, respectively.
In the embodiment of the application, splitting training is performed on a plurality of historical videos to be sent to obtain occurrence probabilities of data values in the historical videos to be sent, and finally, the replacement value of the data value is determined according to the occurrence probability of the data value in each video to be sent, and the larger the occurrence probability of the data value is, the smaller the replacement value corresponding to the data value is. In this way, the larger the occurrence probability of the target data value is, the more data blocks are the target data value when the video to be transmitted is split into the data blocks, and the smaller the replacement value is selected, so that the data transmission speed can be increased, the data transmission efficiency is improved, and the data transmission delay is reduced.
The above is only one possibility of setting the index values from large to small in terms of occurrence probability, and there is also a possibility of setting the index values in terms of the data value distribution probability, such as that the value a, the value B, and the value C are three values in the first range, that the value D, the value E, and the value F are three values in the second range, and that, although the occurrence probability of the value a is 18%, the occurrence probability of the value B is 12%, the occurrence probability of the value C is 10%, the occurrence probability of the value D is 20%, the occurrence probability of the value E is 3%, and the occurrence probability of the value F is 2%, but the occurrence probability of the value a, the value B, and the value C are added to 40%, and that the occurrence probability of the value D, the value E, and the value F are added to 25%, the index values that are more forward can be set for the value a, the value B, and the value C in the first range, and a later index value is set for the value D, the value E, and the value F in the second range, and since the occurrence probability of the value D, the value E, and the value F in the second range is the value D that is the largest in occurrence probability, and the occurrence probability of the value D is far greater than the occurrence probability of the value E and the value F, the index values of the value E and the value F can be represented by the index value and the offset value of the value D, for example, the index value of the value D is 1111, the index value of the value E is 1111+1 (offset value), and the index value of the value F is 1111+2 (offset value), wherein 1111+1 does not affect the use of the index value 1112, that is, the index value 1112 can be used as a substitute value for other data values. The foregoing examples are provided merely for the purpose of illustrating embodiments of the present application and should not be construed as limiting the scope of the present application.
In step 203, the transmitting end sends the replacement value of at least one data block to the receiving end.
After the data value of the data block is replaced by the corresponding replacement value in the data dictionary, the replacement value of at least one data block is sent to the receiving end. The transmission of the replacement value of the at least one data block to the receiving end is typically implemented using the user datagram protocol (User Datagram Protocol, UDP). UDP is a connectionless transport protocol that provides a way for applications to send encapsulated network protocol (Internet Protocol, IP) packets without having to establish a connection.
In step 204, the receiving end receives the replacement value of at least one data block from the transmitting end.
After receiving the replacement value of at least one data block sent by the sending end, the receiving end needs to restore the replacement value of the data block to a data value, and decodes the data value to become the original sending video.
In step 205, the receiving end matches the replacement value of at least one data block with the data dictionary to determine the data value corresponding to the data block, where the replacement value corresponding to the data value is determined according to the data value training of the historical data block.
The replacement of the data value of the data block with the replacement value is convenient for sending the data, and the replacement value of the data block needs to be restored to the data value before restoring the data value to the original video to be sent. Illustratively, taking the data dictionary 30 shown in fig. 3 as an example, the replacement value of at least one data block is matched with the data dictionary 30, but is actually matched with the replacement value 302 in the data dictionary 30, and when the replacement value of at least one data block is matched with the same replacement value 302 in the data dictionary 30, the data value 301 corresponding to the replacement value 302 can be obtained.
In an alternative example, the data dictionary of the receiving end may be self-training generated. The specific process of generating the data dictionary by training the transmitting end is the same as that of generating the data dictionary by training the transmitting end, and will not be described in detail herein. The receiving end and the transmitting end adopt the same historical data to be transmitted and agree with the same training rules in advance, so that the data dictionary generated by the receiving end is the same as the data dictionary generated by the transmitting end.
In an alternative example, the data dictionary of the receiving end may also be transmitted by the transmitting end. Specifically, the data block may be sent before the sending end sends the replacement value of the data block for the first time, or may be sent simultaneously when the sending end sends the replacement value of the data block for the first time. The embodiment of the present application is not particularly limited.
In the embodiment of the application, splitting training is performed on a plurality of historical videos to be sent to obtain occurrence probabilities of data values in the historical videos to be sent, and finally, the replacement value of the data value is determined according to the occurrence probability of the data value in each video to be sent, and the larger the occurrence probability of the data value is, the smaller the replacement value corresponding to the data value is. In this way, the larger the occurrence probability of the target data value is, the more data blocks are the target data value when the video to be transmitted is split into the data blocks, and the smaller the replacement value is selected, so that the data transmission speed can be increased, the data transmission efficiency is improved, and the data transmission delay is reduced.
In addition, since the transmission of the replacement value of at least one data block to the receiving end is generally the UDP protocol, if there is a data loss in the transmission of the data from the transmitting end to the receiving end, the UDP itself does not make any detection or hint. There is a problem in that the transmission of data using UDP faces the risk of packet loss.
In order to solve the problem, in the embodiment of the present application, when the transmitting end transmits the replacement value of at least one data block to the receiving end, the number of marks is added to the number of times of transmitting the replacement value, and the receiving end can determine the packet loss condition of the data block according to the number of marks.
The method is described in detail below:
step 203a, the transmitting end transmits the replacement value of at least one data block to the receiving end, and adds the marking times according to the transmission times of the replacement value.
Step 204a, the receiving end receives the replacement value of at least one data block from the transmitting end, and the number of marks corresponding to each replacement value.
Step 205a, the receiving end matches the replacement value of at least one data block with the data dictionary to determine the data value corresponding to the data block, and determines the packet loss condition of at least one data block according to the number of marks of the replacement value.
In this method, steps 201 to 202 are described above. The contents of steps 203a to 205a may be replaced with the contents of steps 203 to 205 a. In order to overcome the difficulty that packet loss cannot be detected in the data transmission process of UDP, in this embodiment of the present application, a portion of content is added to the content in steps 203 to 205, that is, when the data block replacement value is transmitted to the receiving end, the number of marking times is added to the content and the content is finally transmitted to the receiving end, after the receiving end receives the number of marking times, the number of transmissions of the data block replacement value can be known through the number of marking times, so as to determine whether packet loss occurs, and a specific confirmation process for whether packet loss occurs will be described in the subsequent embodiments of the receiving end.
The marking times can be obtained by marking the sending times of at least one data block when sending the replacing value of the data block, or can be obtained by counting the data blocks when splitting the video to be sent into the data blocks, or counting the times of replacing the data values with the replacing values when matching the data values of all the data blocks with the data dictionary and determining the replacing value of the data block. It can thus be concluded that the number of marks = number of data block replacement values = number of data block data values and number of replacements of the corresponding replacement values.
After receiving the replacement value and the marking times of the replacement value of the data block, the receiving end counts the number of the replacement values received by the receiving end to obtain the receiving times, and according to the difference value of the receiving times and the marking times, the packet loss condition of at least one data block can be judged, and the packet loss information comprises whether packet loss occurs and the number of the packet loss. As shown in table 1, if the difference between the number of times of reception and the number of times of marking is equal to zero, it can be determined that no packet loss occurs in the process of transmitting the data block; if the difference between the number of times of receiving and the number of times of marking is greater than zero, it can be judged that packet loss occurs in the process of sending the data block, and the number of packet loss is equal to the difference. If packet loss occurs in the occurrence process of the data block, the receiving end can feed back packet loss information to the sending end, and the sending end carries out subsequent processing on the situation.
Table 1 packet loss condition judgment table
Difference case | Packet loss condition |
Difference=0 | No packet loss |
Difference value>0 | Packet loss occurs, and packet loss number=difference value |
In the embodiment of the application, when the replacement value of at least one data block is sent to the receiving end, the marking times are added to the sending times, and finally the marking times are sent to the receiving end, the receiving end receives the marking times of the replacement value sent by the sending end, and whether the packet loss condition exists in the sending process of the data block is determined through the marking times of the replacement value and the receiving times of the replacement value. In this way, the packet loss condition in the data block sending process can be rapidly and effectively judged, and timely processing can be performed on the packet loss condition.
It can be seen that in the embodiment of the present application, firstly, a transmitting end obtains a video to be transmitted, and splits the video to be transmitted into at least one data block; secondly, matching the data value of at least one data block with a data dictionary, and determining a replacement value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to the data value training of the historical data block; and finally, transmitting the replacement value of at least one data block to the receiving end. The receiving end receives the replacement value of at least one data block from the transmitting end; and matching the replacement value of at least one data block with the data dictionary, and determining the data value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to the data value training of the historical data block. By adopting the method, the video transmission is effectively and reasonably compressed, so that the video transmission rate is improved.
In accordance with the above-described embodiments, referring to fig. 5a, fig. 5a is a functional block diagram of a data transmission device according to an embodiment of the present application, where the device is applied to a transmitting end, and the transmitting end is communicatively connected to a receiving end, as shown in fig. 5a, the data transmission device 50 includes: an obtaining unit 501, configured to obtain a video to be sent, and split the video to be sent into at least one data block; the matching unit 502 is configured to match a data value of at least one data block with a data dictionary, determine a replacement value corresponding to the data block, where the replacement value corresponding to the data value is determined according to data value training of a historical data block; a transmitting unit 503, configured to transmit the replacement value of at least one data block to the receiving end.
In one possible example, a plurality of historical to-be-transmitted videos are acquired, and each of the plurality of historical to-be-transmitted videos is split into at least one historical data block; carrying out probability statistics of historical data values on at least one historical data block of each historical video to be sent, and determining occurrence probability of the historical data values; and determining a replacement value corresponding to the historical data value according to the occurrence probability of the historical data value of each historical video to be transmitted in the plurality of historical videos to be transmitted, and generating a data dictionary.
In one possible example, the replacement value corresponding to the historical data value is an index value, and the index value is ranked from high to low according to the occurrence probability of the historical data value.
In one possible example, sending the replacement value of the at least one data block to the receiving end comprises: and transmitting the replacement value of at least one data block to the receiving end, and adding the marking times according to the transmission times of the replacement value.
It can be understood that, since the method embodiment and the apparatus embodiment are in different presentation forms of the same technical concept, the content of the method embodiment portion in the present application should be adapted to the apparatus embodiment portion synchronously, which is not described herein.
In the case of using integrated units, as shown in fig. 5b, fig. 5b is a block diagram of functional units of another data transmission apparatus provided in the embodiment of the present application. In fig. 5b, the data transmission device 51 includes: a processing module 512 and a communication module 511. The processing module 512 is configured to control and manage actions of the data transmission device, for example, performing the steps of the acquisition unit 501, the matching unit 502, and the transmission unit 503, and/or to perform other processes of the techniques described herein. The communication module 511 is used to support interaction between the data transmission apparatus and other devices. As shown in fig. 5b, the data transmission apparatus may further comprise a storage module 513, the storage module 513 being for storing program code and data of the data transmission apparatus.
The processing module 512 may be a processor or controller, such as a central processing unit (Central Processing Unit, CPU), a general purpose processor, a digital signal processor (Digital Signal Processor, DSP), an ASIC, an FPGA or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. Which may implement or perform the various exemplary logic blocks, modules, and circuits described in connection with this disclosure. A processor may also be a combination that performs computing functions, e.g., including one or more microprocessors, a combination of a DSP and a microprocessor, and so forth. The communication module 511 may be a transceiver, an RF circuit, a communication interface, or the like. The memory module 513 may be a memory.
All relevant contents of each scenario related to the above method embodiment may be cited to the functional description of the corresponding functional module, which is not described herein. The data transmission device 51 may perform the data processing method shown in fig. 2.
In accordance with the above-described embodiments, referring to fig. 6a, fig. 6a is a functional block diagram of a data transmission device according to an embodiment of the present application, where the device is applied to a receiving end, and the transmitting end is communicatively connected to the receiving end, as shown in fig. 6a, a data transmission device 60 includes: a receiving unit 601, configured to receive a replacement value of at least one data block from a transmitting end; and the matching unit 602 is configured to match the replacement value of at least one data block with the data dictionary, determine a data value corresponding to the data block, where the replacement value corresponding to the data value is determined according to data value training of the historical data block.
In one possible example, a plurality of historical to-be-transmitted videos are acquired, and each of the plurality of historical to-be-transmitted videos is split into at least one historical data block; carrying out probability statistics of historical data values on at least one historical data block of each historical video to be sent, and determining occurrence probability of the historical data values; and determining a replacement value corresponding to the historical data value according to the occurrence probability of the historical data value of each historical video to be transmitted in the plurality of historical videos to be transmitted, and generating a data dictionary.
In one possible example, the replacement value corresponding to the historical data value is an index value, and the index value is ranked from high to low according to the occurrence probability of the historical data value.
In one possible example, receiving the replacement value for the at least one data block further includes receiving a number of flags for the replacement value, the number of flags being used to flag a number of transmissions of the replacement value, the method further comprising: and determining the packet loss condition of at least one data block according to the marking times of the replacement values.
It can be understood that, since the method embodiment and the apparatus embodiment are in different presentation forms of the same technical concept, the content of the method embodiment portion in the present application should be adapted to the apparatus embodiment portion synchronously, which is not described herein.
In the case of using integrated units, as shown in fig. 6b, fig. 6b is a block diagram of functional units of another data transmission apparatus provided in the embodiment of the present application. In fig. 6b, the data transmission apparatus 61 includes: a processing module 612 and a communication module 611. The processing module 612 is used to control and manage the actions of the data transmission device, e.g., the steps of the receiving unit 601 and the matching unit 602, and/or other processes for performing the techniques described herein. The communication module 611 is used to support interaction between the data transmission apparatus and other devices. As shown in fig. 6b, the data transmission apparatus may further comprise a memory module 613, the memory module 613 being for storing program codes and data of the data transmission apparatus.
The processing module 612 may be a processor or controller, such as a central processing unit (Central Processing Unit, CPU), a general purpose processor, a digital signal processor (Digital Signal Processor, DSP), an ASIC, an FPGA or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. Which may implement or perform the various exemplary logic blocks, modules, and circuits described in connection with this disclosure. The processor may also be a combination that performs the function of a computation, e.g., a combination comprising one or more microprocessors, a combination of a DSP and a microprocessor, and the like. The communication module 611 may be a transceiver, an RF circuit, a communication interface, or the like. The memory module 613 may be a memory.
All relevant contents of each scenario related to the above method embodiment may be cited to the functional description of the corresponding functional module, which is not described herein. The data transmission device 61 may perform the data processing method shown in fig. 2.
The above embodiments may be implemented in whole or in part by software, hardware, firmware, or any other combination. When implemented in software, the above-described embodiments may be implemented in whole or in part in the form of a computer program product. The computer program product comprises one or more computer instructions or computer programs. When the computer instructions or computer program are loaded or executed on a computer, the processes or functions described in accordance with the embodiments of the present application are all or partially produced. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from one website site, computer, server, or data center to another website site, computer, server, or data center by wired or wireless means. The computer readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains one or more sets of available media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. The semiconductor medium may be a solid state disk.
Fig. 7 is a block diagram of an electronic device according to an embodiment of the present application. As shown in fig. 7, the electronic device 700 may include one or more of the following components: a processor 701, a memory 702 coupled with the processor 701, wherein the memory 702 may store one or more computer programs that may be configured to implement the methods as described in the embodiments above when executed by the one or more processors 701. The electronic device 700 may be the transmitting end and/or the receiving end.
The processor 701 may include one or more processing cores. The processor 701 utilizes various interfaces and lines to connect various portions of the overall electronic device 700, perform various functions of the electronic device 700, and process data by executing or executing instructions, programs, code sets, or instruction sets stored in the memory 702, and invoking data stored in the memory 702. Alternatively, the processor 701 may be implemented in at least one hardware form of digital signal processing (Digital Signal Processing, DSP), field-Programmable gate array (FPGA), programmable Logic Array (PLA). The processor 701 may integrate one or a combination of several of a central processing unit (CentralProcessing Unit, CPU), an image processor (Graphics Processing Unit, GPU), and a modem, etc. The CPU mainly processes an operating system, a user interface, an application program and the like; the GPU is used for being responsible for rendering and drawing of display content; the modem is used to handle wireless communications. It will be appreciated that the modem may not be integrated into the processor 701 and may be implemented solely by a single communication chip.
The Memory 702 may include a random access Memory (Random Access Memory, RAM) or a Read-Only Memory (ROM). Memory 702 may be used to store instructions, programs, code, sets of codes, or instruction sets. The memory 702 may include a stored program area and a stored data area, wherein the stored program area may store instructions for implementing an operating system, instructions for implementing at least one function (e.g., a touch function, a sound playing function, an image playing function, etc.), instructions for implementing the various method embodiments described above, and the like. The storage data area may also store data created by the electronic device 700 in use, and the like.
It is to be appreciated that the electronic device 700 may include more or fewer structural elements than those described in the above-described block diagrams, including, for example, a power module, physical key, wiFi (Wireless Fidelity ) module, speaker, bluetooth module, sensor, etc., without limitation.
An embodiment of the present application provides a computer readable storage medium, where the computer readable storage medium stores program data for executing some or all of the steps of any one of the data transmission methods described in the above method embodiments when the program data is executed by a processor.
The present application also provides a computer program product comprising a non-transitory computer readable storage medium storing a computer program operable to cause a computer to perform part or all of the steps of any one of the data transmission methods described in the method embodiments above. The computer program product may be a software installation package, said computer comprising a receiving side and/or a transmitting side.
It should be noted that, for simplicity of description, the method embodiments of any of the foregoing data transmission methods are all described as a series of combinations of actions, but it should be understood by those skilled in the art that the present application is not limited by the order of actions described, as some steps may be performed in other order or simultaneously according to the present application. Further, those skilled in the art will appreciate that the embodiments described in the specification are all preferred embodiments and that the acts referred to are not necessarily required in the present application.
Although the present application has been described herein in connection with various embodiments, other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed application, from a review of the figures, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the "a" or "an" does not exclude a plurality. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
Those of ordinary skill in the art will appreciate that all or a portion of the steps in the various method embodiments of any of the data transmission methods described above may be performed by a program that instructs associated hardware, and that the program may be stored in a computer readable memory, and the memory may include: flash disk, read-Only Memory (ROM), random access Memory (Random Access Memory, RAM), magnetic disk or optical disk.
The foregoing embodiments of the present application have been described in detail, and specific examples are applied herein to illustrate the principles and embodiments of a data transmission method and apparatus, where the foregoing embodiments are only for aiding in understanding of the method and core idea of the present application; meanwhile, as to those skilled in the art, according to the idea of a data transmission method and apparatus of the present application, there are various changes in the specific embodiments and application scope, and in summary, the present disclosure should not be construed as limiting the present application.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, hardware products, and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
It will be appreciated that any product of the processing method of the flowcharts described in connection with the method embodiments of a data transmission method or configured to perform the method embodiments of the present application, such as the terminals of the flowcharts described above and computer program products, falls within the scope of the related products described in the present application.
It will be apparent to those skilled in the art that various modifications and variations can be made in a data transmission method and apparatus provided herein without departing from the spirit and scope of the invention. Thus, if such modifications and variations of the present application fall within the scope of the claims and the equivalents thereof, the present application is intended to cover such modifications and variations.
Claims (10)
1. A data transmission method, applied to a transmitting end, the method comprising:
acquiring a video to be sent, and splitting the video to be sent into at least one data block;
matching the data value of the at least one data block with a data dictionary, and determining a replacement value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to data value training of a historical data block;
transmitting the replacement value of the at least one data block to a receiving end;
the generation process of the data dictionary comprises the following steps:
acquiring a plurality of historical videos to be sent, and splitting each historical video to be sent in the plurality of historical videos to be sent into at least one historical data block;
carrying out probability statistics of historical data values on at least one historical data block of each historical video to be transmitted, and determining occurrence probability of the historical data values;
Determining a replacement value corresponding to a historical data value according to the occurrence probability of the historical data value of each historical video to be sent in the plurality of historical videos to be sent, and generating the data dictionary;
wherein said determining the probability of occurrence of said historical data value comprises:
determining the number of all historical data values and the number of each historical data value corresponding to each historical data to be sent in the plurality of historical to-be-sent videos, determining the first occurrence probability of each historical data value corresponding to each historical to-be-sent data according to the ratio of the number of each historical data value to the number of all historical data values, and determining the highest occurrence probability of the first occurrence probabilities corresponding to each historical data value in the plurality of historical to-be-sent videos as the occurrence probability of each historical data value.
2. The method of claim 1, wherein the replacement value corresponding to the historical data value is an index value, the index value being ordered from high to low according to a probability of occurrence of the historical data value.
3. The method according to claim 1 or 2, wherein said sending the replacement value of the at least one data block to the receiving end comprises:
And transmitting the replacement value of the at least one data block to a receiving end, and adding the marking times according to the transmission times of the replacement value.
4. A data transmission method, applied to a receiving end, the method comprising:
receiving a replacement value of at least one data block from a transmitting end;
matching the replacement value of the at least one data block with a data dictionary, and determining a data value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to data value training of a historical data block;
the generation process of the data dictionary comprises the following steps:
acquiring a plurality of historical videos to be sent, and splitting each historical video to be sent in the plurality of historical videos to be sent into at least one historical data block;
carrying out probability statistics of historical data values on at least one historical data block of each historical video to be transmitted, and determining occurrence probability of the historical data values;
determining a replacement value corresponding to a historical data value according to the occurrence probability of the historical data value of each historical video to be sent in the plurality of historical videos to be sent, and generating the data dictionary;
wherein said determining the probability of occurrence of said historical data value comprises:
Determining the number of all historical data values and the number of each historical data value corresponding to each historical data to be sent in the plurality of historical to-be-sent videos, determining the first occurrence probability of each historical data value corresponding to each historical to-be-sent data according to the ratio of the number of each historical data value to the number of all historical data values, and determining the highest occurrence probability of the first occurrence probabilities corresponding to each historical data value in the plurality of historical to-be-sent videos as the occurrence probability of each historical data value.
5. The method of claim 4, wherein the replacement value corresponding to the historical data value is an index value, the index value being ordered from high to low according to a probability of occurrence of the historical data value.
6. The method of claim 4 or 5, wherein receiving the replacement value for the at least one data block further comprises receiving a number of flags for the replacement value, the number of flags being used to flag a number of transmissions of the replacement value, the method further comprising: and determining the packet loss condition of the at least one data block according to the marking times of the replacement values.
7. A data transmission apparatus, applied to a transmitting end, comprising:
the device comprises an acquisition unit, a transmission unit and a transmission unit, wherein the acquisition unit is used for acquiring a video to be transmitted and splitting the video to be transmitted into at least one data block;
the matching unit is used for matching the data value of the at least one data block with the data dictionary and determining a replacement value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to the data value training of the historical data block;
a transmitting unit, configured to transmit the replacement value of the at least one data block to a receiving end;
the generation process of the data dictionary comprises the following steps:
acquiring a plurality of historical videos to be sent, and splitting each historical video to be sent in the plurality of historical videos to be sent into at least one historical data block;
carrying out probability statistics of historical data values on at least one historical data block of each historical video to be transmitted, and determining occurrence probability of the historical data values;
determining a replacement value corresponding to a historical data value according to the occurrence probability of the historical data value of each historical video to be sent in the plurality of historical videos to be sent, and generating the data dictionary;
Wherein said determining the probability of occurrence of said historical data value comprises:
determining the number of all historical data values and the number of each historical data value corresponding to each historical data to be sent in the plurality of historical to-be-sent videos, determining the first occurrence probability of each historical data value corresponding to each historical to-be-sent data according to the ratio of the number of each historical data value to the number of all historical data values, and determining the highest occurrence probability of the first occurrence probabilities corresponding to each historical data value in the plurality of historical to-be-sent videos as the occurrence probability of each historical data value.
8. A data transmission apparatus, applied to a receiving end, comprising:
a receiving unit, configured to receive a replacement value of at least one data block from a transmitting end;
the matching unit is used for matching the replacement value of the at least one data block with the data dictionary, and determining a data value corresponding to the data block, wherein the replacement value corresponding to the data value is determined according to data value training of the historical data block;
the generation process of the data dictionary comprises the following steps:
Acquiring a plurality of historical videos to be sent, and splitting each historical video to be sent in the plurality of historical videos to be sent into at least one historical data block;
carrying out probability statistics of historical data values on at least one historical data block of each historical video to be transmitted, and determining occurrence probability of the historical data values;
determining a replacement value corresponding to a historical data value according to the occurrence probability of the historical data value of each historical video to be sent in the plurality of historical videos to be sent, and generating the data dictionary;
wherein said determining the probability of occurrence of said historical data value comprises:
determining the number of all historical data values and the number of each historical data value corresponding to each historical data to be sent in the plurality of historical to-be-sent videos, determining the first occurrence probability of each historical data value corresponding to each historical to-be-sent data according to the ratio of the number of each historical data value to the number of all historical data values, and determining the highest occurrence probability of the first occurrence probabilities corresponding to each historical data value in the plurality of historical to-be-sent videos as the occurrence probability of each historical data value.
9. An electronic device, the device comprising:
the device comprises a processor, a memory and a communication interface, wherein the processor, the memory and the communication interface are mutually connected and complete communication work among each other;
the memory stores executable program codes, and the communication interface is used for wireless communication;
the processor is configured to invoke the executable program code stored on the memory and to perform the method of any of claims 1-3 or claims 4-6.
10. A computer-readable storage medium, characterized in that a computer program for electronic data exchange is stored, wherein the computer program causes a computer to perform the method according to any one of claims 1-6.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210519970.7A CN114979707B (en) | 2022-05-13 | 2022-05-13 | Data transmission method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210519970.7A CN114979707B (en) | 2022-05-13 | 2022-05-13 | Data transmission method and device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114979707A CN114979707A (en) | 2022-08-30 |
CN114979707B true CN114979707B (en) | 2023-12-19 |
Family
ID=82984192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210519970.7A Active CN114979707B (en) | 2022-05-13 | 2022-05-13 | Data transmission method and device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114979707B (en) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05276391A (en) * | 1992-03-24 | 1993-10-22 | Casio Comput Co Ltd | Method for compressing picture and device therefor |
US5945933A (en) * | 1998-01-27 | 1999-08-31 | Infit Ltd. | Adaptive packet compression apparatus and method |
CN103368817A (en) * | 2012-03-31 | 2013-10-23 | 国际商业机器公司 | Method and device for sending and receiving e-mail |
CN108599897A (en) * | 2018-04-09 | 2018-09-28 | 珠海格力电器股份有限公司 | Data processing method and device of equipment |
CN111124851A (en) * | 2019-11-15 | 2020-05-08 | 苏州浪潮智能科技有限公司 | Method, system, terminal and storage medium for processing historical performance data of storage device |
CN113282587A (en) * | 2021-06-01 | 2021-08-20 | 青岛海尔科技有限公司 | State data transmission method and device, storage medium and electronic device |
CN114024914A (en) * | 2021-10-27 | 2022-02-08 | 杭州海康威视数字技术股份有限公司 | Video data transmission method and device and electronic equipment |
CN114389972A (en) * | 2022-02-22 | 2022-04-22 | 清华大学 | Packet loss detection method and device and storage medium |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI527408B (en) * | 2014-11-11 | 2016-03-21 | 國立交通大學 | Method of dynamic coding scheme to compress wireless communication in wireless networks |
-
2022
- 2022-05-13 CN CN202210519970.7A patent/CN114979707B/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05276391A (en) * | 1992-03-24 | 1993-10-22 | Casio Comput Co Ltd | Method for compressing picture and device therefor |
US5945933A (en) * | 1998-01-27 | 1999-08-31 | Infit Ltd. | Adaptive packet compression apparatus and method |
CN103368817A (en) * | 2012-03-31 | 2013-10-23 | 国际商业机器公司 | Method and device for sending and receiving e-mail |
CN108599897A (en) * | 2018-04-09 | 2018-09-28 | 珠海格力电器股份有限公司 | Data processing method and device of equipment |
CN111124851A (en) * | 2019-11-15 | 2020-05-08 | 苏州浪潮智能科技有限公司 | Method, system, terminal and storage medium for processing historical performance data of storage device |
CN113282587A (en) * | 2021-06-01 | 2021-08-20 | 青岛海尔科技有限公司 | State data transmission method and device, storage medium and electronic device |
CN114024914A (en) * | 2021-10-27 | 2022-02-08 | 杭州海康威视数字技术股份有限公司 | Video data transmission method and device and electronic equipment |
CN114389972A (en) * | 2022-02-22 | 2022-04-22 | 清华大学 | Packet loss detection method and device and storage medium |
Non-Patent Citations (1)
Title |
---|
BWT与经典压缩算法研究;倪桂强;李彬;罗健欣;张雪;;计算机与数字工程(11);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114979707A (en) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108965484B (en) | Internet of things data transmission method, system and terminal | |
CN108667739B (en) | Congestion control method, device and system | |
US20210089492A1 (en) | Rdma data sending and receiving methods, electronic device, and readable storage medium | |
CN112817602A (en) | JSON format data sending and receiving method, device and medium | |
CN103971687A (en) | Method and device for realizing load balance of voice recognition system | |
CN109327283B (en) | Network self-adaptive packet loss resisting method and device and terminal equipment | |
CN112887429A (en) | Data transmission method and device, electronic equipment and storage medium | |
KR102434958B1 (en) | Indications for Partial Segments | |
US20190182304A1 (en) | Universal messaging protocol for limited payload size | |
CN110602338B (en) | Audio processing method, device, system, storage medium and equipment | |
CN111327951A (en) | Multimedia data playing method, device, system and storage medium | |
KR102446256B1 (en) | Indications for Partial Segments | |
CN114979707B (en) | Data transmission method and device | |
CN114979093B (en) | RTP-based data transmission method, device, equipment and medium | |
CN114979794B (en) | Data transmission method and device | |
WO2017215144A1 (en) | Scheduling method, device and system, and scheduling response method and device | |
CN114979094B (en) | RTP-based data transmission method, device, equipment and medium | |
EP1719319A1 (en) | Method and arrangement for state memory management | |
CN101257500A (en) | Medium data processing method, apparatus as well as system | |
WO2021036189A1 (en) | Rdma data sending and receiving methods, electronic device and readable storage medium | |
CN111417920A (en) | Data processing method and device | |
CN112737971B (en) | Data processing method, device, storage medium and network equipment | |
US10742783B2 (en) | Data transmitting apparatus, data receiving apparatus and method thereof having encoding or decoding functionalities | |
CN103929404B (en) | Method for analyzing HTTP chunked code data | |
CN104661049A (en) | Transmission method and transmission system for transport stream, streaming media server and terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |