[go: up one dir, main page]

CN117749317A - Fountain code encoding and decoding method and device - Google Patents

Fountain code encoding and decoding method and device Download PDF

Info

Publication number
CN117749317A
CN117749317A CN202211121539.3A CN202211121539A CN117749317A CN 117749317 A CN117749317 A CN 117749317A CN 202211121539 A CN202211121539 A CN 202211121539A CN 117749317 A CN117749317 A CN 117749317A
Authority
CN
China
Prior art keywords
data packet
packet loss
loss rate
frame
time period
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.)
Pending
Application number
CN202211121539.3A
Other languages
Chinese (zh)
Inventor
李东华
李�杰
任晗
张克思
赵朋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211121539.3A priority Critical patent/CN117749317A/en
Publication of CN117749317A publication Critical patent/CN117749317A/en
Pending legal-status Critical Current

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The embodiment of the application provides a fountain code encoding and decoding method and device, wherein an encoding device can acquire a data packet loss rate; adjusting the weight value of the coding frame in the image group according to the data packet loss rate; fountain coding is carried out according to the weight value of the coding frame, and a coding data packet is obtained; the encoded data packet is transmitted to a decoding device. By the method, the fountain code coding efficiency can be improved, and the requirements of video application scenes are more adapted.

Description

Fountain code encoding and decoding method and device
Technical Field
The embodiment of the application relates to the technical field of coding and decoding, in particular to a fountain code coding and decoding method and device.
Background
There are many channel coding schemes in the prior art, such as error control coding (forward error correction coding, etc.), which generally require feedback retransmission, fixed coding rates, and thus it is difficult to guarantee reliable transmission of information. Therefore, it is very urgent to find a channel coding technique applicable to different channel states. The fountain code is used as a channel code and has the advantages of low compiling complexity, low cost and high channel capacity. However, research on fountain codes is focused on how to design the degree distribution so as to achieve the aim of optimizing the coding and decoding efficiency. The prior art does not consider how fountain codes are combined with actual business scenarios to take advantage of this.
Disclosure of Invention
The application provides fountain code encoding and decoding methods and devices so as to adapt to the requirements of actual service scenes.
In a first aspect, the present application provides a fountain code encoding method that may be performed by a fountain code encoding device, where the fountain code encoding device may be an image encoder, a central processing unit (central processing unit, CPU), a graphics processor (graphics processing unit, GPU), etc., and the present application is not specifically limited herein.
The fountain code encoding device acquires the data packet loss rate; adjusting the weight value of the coding frame in the image group according to the data packet loss rate, and carrying out fountain coding according to the weight value of the coding frame to obtain a coding data packet; the encoded data packet is transmitted to a decoding device.
In the application, the fountain code encoding device adjusts the weight value of the encoded frame according to the data packet loss rate, and then fountain codes based on the degree distribution, so that the fountain code encoding device can adapt to the scene requirement of streaming media and ensure the encoding efficiency of the streaming media data.
In an alternative way, the data packet loss rate is indicated by one of the following parameters:
the decoding device is used for decoding the ratio of the unsuccessfully analyzed coded data packet to all received coded data packets in a preset time period;
The first ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the first time period to all the received coded data packets; the second ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the second time period to all the received coded data packets; the first time period and the second time period are adjacent time periods.
By the method, the data packet loss rate is easier to acquire.
In an alternative manner, adjusting the weight value of the encoded frame in the image group according to the data packet loss rate includes: and in a preset time period, adjusting the weight value of the coding frame in the image group according to the data packet loss rate.
By the method, the transmission success rate of the key frames can be improved, the coding efficiency is improved, and the coding quality is ensured.
In an alternative, the encoded frame includes at least one of: i-frames, P-frames, and B-frames; the priority of the I frame, the P frame and the B frame is reduced in sequence; adjusting the weight value of the coding frame in the image group according to the data packet loss rate, comprising:
and in a preset time period, when the data packet loss rate is greater than a packet loss threshold value, sequentially adjusting the weight values of the coded frames in the image group according to the priority order, wherein the sum of the weight values of the coded frames is a preset value, and the weight value of the coded frame with high priority is greater than the weight value of the coded frame with low priority.
By the method, the transmission success rate of the key frames can be improved, the coding efficiency is improved, and the coding quality is ensured.
In an optional manner, when the packet loss rate is greater than the packet loss threshold, the weight value of the encoded frames in the image group is sequentially adjusted according to the priority order, and the method further includes:
acquiring a first data packet loss rate in an ith preset time period, wherein i is a positive integer;
when the first data packet loss rate is greater than a packet loss threshold, adjusting the weight value of the encoded frame according to a first strategy, wherein the first strategy comprises increasing the weight value of the encoded frame of a first priority;
acquiring a second data packet loss rate in the (i+1) th preset time period;
when the second data packet loss rate is smaller than the first data packet loss rate, adjusting the weight value of the coded frame in the (i+2) th preset time period according to a first strategy; or when the second data packet loss rate is not less than the first data packet loss rate, adjusting the weight value of the coded frame in the (i+2) th preset time period according to a second strategy, wherein the second strategy comprises reducing the weight value of the coded frame of the first priority;
acquiring a third data packet loss rate in the (i+2) th preset time period;
when the third data packet loss rate is smaller than the second data packet loss rate, the weight value of the encoded frame in the (i+3) th preset time period is adjusted according to a second strategy, or when the third data packet loss rate is not smaller than the second data packet loss rate, the weight value of the encoded frame in the (i+3) th preset time period is adjusted according to a third strategy, wherein the third strategy comprises the step of increasing the weight value of the encoded frame of the second priority.
By the method, the transmission success rate of the key frames can be improved, the coding efficiency is improved, and the coding quality is ensured.
In an optional manner, the method adjusts the weight value of the encoded frame in the image group according to the data packet loss rate, and further includes: if the data packet loss rate in any preset time period is smaller than the packet loss threshold value, the weight value of the coding frame is not adjusted.
In an alternative, the preset value is 1.
In an alternative manner, adjusting the weight value of the encoded frame in the image group according to the data packet loss rate includes:
inputting the data packet loss rate into a weight adjustment model, and determining the weight value of the encoded frame in the image group by using one or more of the following algorithms: a Monte Carlo algorithm, a back propagation algorithm, a Newton gradient method and a one-dimensional search algorithm.
By the method, the key frame coding efficiency can be timely adjusted, and the decoding success rate is improved.
In an alternative way, the encoded data packet comprises: the position of the encoded frame, the fountain-encoded degree value.
In a second aspect, the present application provides a fountain code decoding method that may be performed by a fountain code decoding device, where the fountain code decoding device may be an image decoder, and the present application is not specifically limited herein.
The fountain code decoding device receives the coded data packet; the coding data packet is determined by fountain coding according to the weight value of the coding frame; and analyzing the coded data packet to obtain video data.
In an alternative manner, determining a data packet loss rate;
and feeding back the data packet loss rate to the coding device.
In an alternative way, the data packet loss rate is indicated by one of the following parameters:
the decoding device is used for decoding the ratio of the unsuccessfully analyzed coded data packet to all received coded data packets in a preset time period;
the first ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the first time period to all the received coded data packets; the second ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the second time period to all the received coded data packets; the first time period and the second time period are adjacent time periods.
In a third aspect, the present application provides a fountain code encoding device, including: a transceiver unit and a processing unit; the receiving and transmitting unit is used for acquiring the data packet loss rate; the processing unit is used for adjusting the weight value of the coding frame in the image group according to the data packet loss rate, and fountain coding is carried out according to the weight value of the coding frame to obtain a coding data packet; the encoded data packet is transmitted to a decoding device.
In an alternative way, the data packet loss rate is indicated by one of the following parameters:
the decoding device is used for decoding the ratio of the unsuccessfully analyzed coded data packet to all received coded data packets in a preset time period;
the first ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the first time period to all the received coded data packets; the second ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the second time period to all the received coded data packets; the first time period and the second time period are adjacent time periods.
In an alternative way, the processing unit is specifically configured to: and in a preset time period, adjusting the weight value of the coding frame in the image group according to the data packet loss rate.
In an alternative, the encoded frame includes at least one of: i-frames, P-frames, and B-frames; the priority of the I frame, the P frame and the B frame is reduced in sequence; the processing unit is specifically used for:
and in a preset time period, when the data packet loss rate is greater than a packet loss threshold value, sequentially adjusting the weight values of the coded frames in the image group according to the priority order, wherein the sum of the weight values of the coded frames is a preset value, and the weight value of the coded frame with high priority is greater than the weight value of the coded frame with low priority.
In an alternative way, the processing unit is further configured to:
acquiring a first data packet loss rate in an ith preset time period, wherein i is a positive integer;
when the first data packet loss rate is greater than a packet loss threshold, adjusting the weight value of the encoded frame according to a first strategy, wherein the first strategy comprises increasing the weight value of the encoded frame of a first priority;
acquiring a second data packet loss rate in the (i+1) th preset time period;
when the second data packet loss rate is smaller than the first data packet loss rate, adjusting the weight value of the coded frame in the (i+2) th preset time period according to a first strategy; or when the second data packet loss rate is not less than the first data packet loss rate, adjusting the weight value of the coded frame in the (i+2) th preset time period according to a second strategy, wherein the second strategy comprises reducing the weight value of the coded frame of the first priority;
acquiring a third data packet loss rate in the (i+2) th preset time period;
when the third data packet loss rate is smaller than the second data packet loss rate, the weight value of the encoded frame in the (i+3) th preset time period is adjusted according to a second strategy, or when the third data packet loss rate is not smaller than the second data packet loss rate, the weight value of the encoded frame in the (i+3) th preset time period is adjusted according to a third strategy, wherein the third strategy comprises the step of increasing the weight value of the encoded frame of the second priority.
In an alternative way, the processing unit is further configured to: if the data packet loss rate in any preset time period is smaller than the packet loss threshold value, the weight value of the coding frame is not adjusted.
In an alternative, the preset value is 1.
In an alternative way, the processing unit is specifically configured to:
inputting the data packet loss rate into a weight adjustment model, and determining the weight value of the encoded frame in the image group by using one or more of the following algorithms: a Monte Carlo algorithm, a back propagation algorithm, a Newton gradient method and a one-dimensional search algorithm.
In an alternative way, the encoded data packet comprises: the position of the encoded frame, the fountain-encoded degree value.
In a fourth aspect, the present application provides a fountain code decoding device, including: a processing unit and a receiving and transmitting unit;
the receiving and transmitting unit is used for receiving the coded data packet; the coding data packet is determined by fountain coding according to the weight value of the coding frame; and the processing unit is used for analyzing the coded data packet to acquire video data.
In an alternative manner, the processing unit is configured to determine a packet loss rate of the data; and the receiving and transmitting unit is used for feeding back the data packet loss rate to the encoding device.
In an alternative way, the data packet loss rate is indicated by one of the following parameters:
The decoding device is used for decoding the ratio of the unsuccessfully analyzed coded data packet to all received coded data packets in a preset time period;
the first ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the first time period to all the received coded data packets; the second ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the second time period to all the received coded data packets; the first time period and the second time period are adjacent time periods.
In a fifth aspect, an embodiment of the present application provides a fountain code encoding device including: a non-volatile memory and a processor coupled to each other, the processor invoking program code stored in the memory to perform the method of the first aspect or any of the designs of the first aspect.
In a sixth aspect, an embodiment of the present application provides a fountain code decoding device including: a non-volatile memory and a processor coupled to each other, the processor invoking program code stored in the memory to perform the method of the second aspect or any design of the second aspect. It should be noted that the processor does not perform the encoding operation.
In a seventh aspect, an embodiment of the present application provides a fountain code processing system, including a fountain code encoding device in the fifth aspect and a fountain code decoding device in the sixth aspect.
In an eighth aspect, embodiments of the present application provide a computer-readable storage medium storing program code, where the program code includes instructions for performing part or all of the steps of any one of the methods of the first or second aspects.
In a ninth aspect, embodiments of the present application provide a computer program product which, when run on a computer, causes the computer to perform part or all of the steps of any one of the methods of the first or second aspects.
It should be understood that the beneficial effects of the second to ninth aspects of the present application may be referred to the related description of the first aspect, and will not be repeated.
Drawings
FIG. 1 shows a schematic diagram of LT code encoding and decoding;
FIG. 2 shows a schematic diagram of a Raptor code encoding;
FIG. 3 shows a schematic diagram of the structure of an image group;
fig. 4 is a schematic diagram illustrating a streaming media data processing flow provided in an embodiment of the present application;
Fig. 5 shows a flow diagram of a fountain code encoding and decoding method provided in an embodiment of the present application;
FIG. 6 shows a schematic diagram of a sliding window provided by an embodiment of the present application;
FIG. 7 is a schematic diagram of a weight adjustment model according to an embodiment of the present application;
fig. 8 shows a schematic structural diagram of a fountain code processing device according to an embodiment of the present application;
fig. 9 shows a schematic structural diagram of a fountain code processing device according to an embodiment of the present application;
fig. 10 shows a schematic structural diagram of a fountain code processing device provided in an embodiment of the present application.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the present application more apparent, the present application will be described in further detail with reference to the accompanying drawings. The specific method of operation in the method embodiment may also be applied to the device embodiment or the system embodiment. In the description of the present application, unless otherwise indicated, the meaning of "a plurality" is two or more. Therefore, the implementation of the apparatus and the method can be referred to each other, and the repetition is not repeated.
In order to better explain the scheme of the application, technical terms possibly related to the application are firstly explained and specifically as follows:
1. The existing fountain codes include two types: a lubi transform code (luby transform codes, LT code) and a tachycardia code (rapid tornado code, raptor code). The LT code is the first specific implementation of fountain codes, which is proposed by Michael Luby, and Amin Shokrollahi improves the LT code later, and a second type of fountain codes, namely Raptor codes, are proposed.
1) LT code
Wherein the encoding process of the LT code can be as shown in (a) of FIG. 1, the data to be encoded is divided into data packets S of a plurality of bits of equal length 1 、S 2 … Sn for each code packet C 1 、C 2 … Cn randomly generates a degree value d, wherein the degree value is the number of related data packets, for example, C1 degree is 3, C2 degree is 1, d data packets are uniformly and randomly selected from all data packets, and the code packet is the exclusive OR calculation result of d input data packets.
The receiving end must know the degree value of each encoded packet and specifically which data packets are exclusive-ored when decoding. If at some point, the packets with a degree of 1 have all disappeared, but some of the old source packets have not yet been recovered, decoding fails. Too many packets of degree 1 can also result inRedundancy and low efficiency. As shown in fig. 1 (b), the coding packet with the degree of 1 is found, because it is associated with only one data packet, and if there is no coding packet with the degree of 1, the decoding process ends. Exclusive-or (exclusive-or) of the recovered packet with all other packets associated with the packet and subtracting 1 from the number of packets may result in a new number 1 of packets. Repeating the steps until all the steps are decoded. As in (b), S of FIG. 1 2 Coded packet with degree of 1, data packet C can be obtained 2 And then performing a de-exclusive OR operation to recover all the data packets.
Furthermore, it is desirable that a degree distribution only generates a degree 1 encoded packet, and that a degree 1 encoded packet can be regenerated exactly one time a data packet is recovered. In this way, a coding packet with a degree of 1 can be used all the time until all the n data packets are decoded, and the decoding process is finished. Luby proposes an ideal solitary distribution (later on, for robustness, a robust solitary distribution is proposed), here not specifically in the form of a schematic distribution.
2) Raptor code
The Raptor code mainly consists of two coding processes: precoding and LT encoding. As shown in fig. 2, a data packet S to be encoded 1 、S 2 …S 6 Precoding to obtain a precoding coded packet C 1 、C 2 …C 9 Wherein the number of pre-encoded packets is greater than the number of data packets to be encoded, C 7 、C 8 、C 9 For redundant nodes, then pre-code the coded packet C 1 、C 2 …C 9 And performing exclusive-or operation to determine the encoded data.
The pre-coding is mainly a traditional erasure code with a fixed code rate, the calculation speed is very fast, and the pre-coding is usually formed by cascading a high-density parity check code with a simple regular low-density parity check code (such as a hamming code and a low-density parity check code).
Procedure 2.LT encoding procedure then becomes the intermediate encoding block of the pre-encoded output, the procedure follows the standard LT encoding procedure.
2. Streaming media
Streaming media is a technology that compresses continuous multimedia data (video, image, audio, etc.), transmits segments through a network, and a client receives a part of continuous data and then can directly play the continuous data.
Taking the h.265 video coding protocol as an example, the block coding decision of the existing coding protocol adopts a traversal mode, for example, a lagrangian optimization method is adopted to determine all coding parameters for each LCU, and the method mainly comprises a CU partition mode, the partition of PUs and TUs in the CU, a PU prediction mode and the like. Then, the coding process is performed according to the CU, and first, the original pixel data (original pixel) of the CU is predicted (prediction), and the prediction is classified into intra prediction (intra prediction) and inter prediction (inter prediction). In source coding, coding is usually performed based on a group of pictures (GoP), where a group of pictures may include one or more coded frames, such as: i frame, P frame and B frame, wherein I frame is key frame, and the latter P frame or B frame refers to I frame to carry out coding process. As shown in fig. 3, a schematic structure of a group of pictures is shown, the group of pictures corresponds to a time interval of 30S, the structure of the encoded frame is IIPP … B, the shadow filling represents I frames, the non-shadow filling represents P frames, and the black filling represents B frames.
In this application, "and/or" describes an association relationship of an association object, which means that there may be three relationships, for example, a and/or B may mean: a alone, a and B together, and B alone, wherein a, B may be singular or plural. And, unless specified to the contrary, the embodiments of the present application refer to the ordinal terms "first," "second," etc., as used to distinguish between multiple objects, and are not to be construed as limiting the order, timing, priority, or importance of the multiple objects.
Reference in the specification to "one embodiment" or "some embodiments" or the like means that a particular feature, structure, or characteristic described in connection with the embodiment is included in one or more embodiments of the application. Thus, appearances of the phrases "in one embodiment," "in some embodiments," "in other embodiments," and the like in the specification are not necessarily all referring to the same embodiment, but mean "one or more but not all embodiments" unless expressly specified otherwise. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless expressly specified otherwise.
There are some unequal error protection fountain code conceptual designs at present, but only in academic research, and no commercial technology exists. The unequal error protection fountain codes divide different information into a plurality of important grades by giving different participation coding weights to the information data, so that the information importance is distinguished. When the inventor researches fountain codes, the inventor finds that the coding scheme of the fountain codes is applied to streaming media, which is favorable for better coding and transmission of streaming media data, the application flow of the method can be shown in fig. 4, after image data (GRB data or YUV data) is coded by H.26X (X=3/4/5), the image data is subjected to data shaping (such as division into a plurality of sliding windows), and the image data is packaged and sent to a client through fountain code coding. The scheme of encoding by using fountain codes can be applied to transmission of media data such as omni-directional video and augmented reality (augmented reality, AR)/Virtual Reality (VR) besides streaming media, and is not particularly limited herein.
In some streaming media scenarios, part of the data is important information and needs more protection, for example, in an MPEG stream, if an I frame is designed independently of other frames, P depends on the I information, and B depends on the previous I and P information, so that the I frame needs more protection, and how to perform targeted adaptation of fountain codes according to the streaming media frame is very important. In addition, the manually set weight is relatively mechanical, and when transmission faults (screen patterns) or quality degradation (mosaics) and other phenomena occur in certain scenes, the frame weight adjustment cannot be performed in a self-adaptive mode.
The main fountain code technology at present has the defect that weight adjustment or weight blind adjustment cannot be carried out on scenes, and particularly in some streaming media scenes, part of data is important information and needs more protection. Although the prior unequal error protection fountain code technology considers the importance difference of information, the importance difference is not carried out by adjusting the probability or the weight of the coded frames selected by the coded bits in the image group, so that the fountain code coding is carried out, and the transmission protection of key coded frames cannot be actually ensured. In addition, there is a certain mechanical property in how to perform targeted adaptation, and the targeted adaptation is mostly completed by adopting a manual setting mode, so that the unequal error protection coding (without practical application cases) mentioned in the academic circles has a certain manual setting problem, and cannot be adjusted for scene adaptation.
Based on this, the present application provides a fountain code encoding method to better adapt to the scene requirement of the streaming media, and may be executed with reference to fig. 5, where an encoding device may be understood as an encoder, a CPU, a GPU, etc., and a decoding device may be understood as a decoder, etc., and the execution is as follows:
in step 501, the encoding device acquires a data packet loss rate.
When the fountain code coding scheme is executed for the first time, the data packet loss rate can be a preset value. Optionally, the data packet loss rate may be issued by other data processing devices, such as: the server may also be issued by the decoding device, i.e. the decoding device, and in fig. 5, the decoding device will be given as an example of the transmission data packet loss rate by step 500.
The data packet loss rate may be indicated by one of the following parameters:
parameter 1, the ratio of the unsuccessfully analyzed coded data packet to all received coded data packets in a preset time period by a decoding device.
For example, the preset time period is 10S, the decoding device receives 10 encoded data packets in 10S, successfully parses 8 encoded data packets, and does not successfully parse 2 (10-8) encoded data packets, so the packet loss rate may be 2/10, which is only described here as an example, and how much the specific preset time period is set may be set according to the practical application, which is not particularly limited herein.
Parameter 2, the difference value of the first ratio and the second ratio, wherein the first ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the first time period to all the received coded data packets; the second ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the second time period to all the received coded data packets; the first time period and the second time period are adjacent time periods.
For example, the first time period is 8:00-8:10, the second time period is 8:10-8:20, the number of successfully parsed encoded data packets in the first time period is 6, the number of unsuccessfully parsed encoded data packets is 4, the number of received data packets is 10, the first ratio is 4/10, the number of successfully parsed encoded data packets in the second time period is 18, the number of unsuccessfully parsed encoded data packets is 2, the number of received data packets is 20, the second ratio is 2/20, and the difference between the first ratio and the second ratio is 0.3 (4/10-2/20).
Of course, in practical application, the decoding device may feedback the parameter 1, or may feedback the parameter 2, or may even feedback the parameter 1 and the parameter 2 to the encoding device after performing the weighting operation.
In step 502, the encoding device adjusts the weight value of the encoded frame in the image group according to the data packet loss rate.
The weight value of the encoded frame in the image group is not always unchanged, and can be adjusted based on the data packet loss rate in a preset time period, for example, in a preset time period 1, the data packet loss rate is increased, the weight value of the encoded frame can be improved, the data packet loss rate is reduced, the weight value of the encoded frame can be reduced, and particularly, how to adjust the weight value can be flexibly set based on the size of the data packet loss rate.
For example, the encoded frames of the gips may include I frames, P frames and B frames, and one video data may correspond to a plurality of gips, each gip has the same time length, and the format of the encoded frames in each gip is the same, for example, the video data 1 includes 3 gips, each gip has the time length of 10S, and the format of the corresponding encoded frames is IBBPBBPBBPBB, the weight value corresponding to the I frames, that is, the probability of being selected by the encoding device, may be weight 1, the weight value corresponding to the P frames, that is, the probability of being selected by the encoding device, may be weight 2, the weight value corresponding to the B frames, that is, the probability of being selected by the encoding device, may be weight 3, the weight 1 may be greater than weight 2, and the weight 2 is greater than weight 3.
Optionally, the coding device divides the GoP into N sliding windows of equal length; the sliding windows overlap; n is more than or equal to 1; n is a positive integer. And adjusting the weight value of each coding frame in the sliding window according to the data packet loss rate. Video data has multiple GoPs, typically a single video, whose GoP format is fixed, consisting of 1I frame and multiple P or B frames (I/P/B, I/B or I/P). For example, the GoP may be formed by 1I frame, 3P frames, 8B frames to form a corresponding coded frame in IBBPBBPBBPBB, the coding device may divide a GoP into a plurality of sliding windows, one I frame may be split into a plurality of sliding windows, if the I frame of the GoP is allocated to sliding window 1, 2, 3, the I frame may be allocated to the next sliding window 4 if there is a remaining portion, the B frame may be split into sliding window 4, 5, 6, etc., and the B frame may be allocated to the next sliding window if there is a remaining portion. Because the size of the encoded frames is not constant, the number of the occupied sliding windows is also different, the divided windows are marked according to the type of the frames with the dominant actual size, for example, the encoded frames in the sliding window 1 are all from I frames, the type of the encoded frames is marked as I frames, the encoded frames of the sliding window 4 are from the rest part of the I frames and the part of the B frames, the type of the encoded frames of the sliding window 4 is marked according to the actual occupation proportion, if the I frame occupation ratio is not less than 0.5, the type of the sliding window 4 can be marked as I frames, otherwise, the encoded frames are marked as B frames. Similarly, frame types for different sliding windows are defined. And then, the weight values of different types of coded frames in the preset time can be adjusted according to the data packet loss rate, for example, the weight value of the I frame is adjusted to be increased, the probability of being selected by a sliding window defined as the I frame is increased, and then the opportunity of protecting the I frame is larger.
As shown in fig. 6, the format of the coding frame corresponding to the golp may be 1I frame, 3P frames and 8B frames is IBBPBBPBBPBB, where sliding window 1 to sliding window 3 correspond to I frames, sliding window 4 corresponds to part of the I frames and B frames, and one GoP may correspond to a plurality of sliding windows, which is illustrated by only 4 sliding windows. The weight value of the encoded frame in the sliding window may be adjusted based on the data packet loss rate. The weight value of each coding frame in different sliding windows is determined, and based on the determined weight value, fountain code coding is performed with emphasis, so that the coding reliability of the coding frame can be ensured. In addition, the sliding window 1 may correspond to the data a, the sliding window 2 may correspond to the data B, the sliding window 3 corresponds to the data C, and the sliding window 4 corresponds to the data D, and then fountain code encoding may be performed based on the degree distribution, which is not limited herein, and may be understood with reference to the existing degree distribution manner, which is not described herein.
In the application, the priority of the I frame, the P frame and the B frame is sequentially reduced; and when the data packet loss rate is greater than the packet loss Bao Yuzhi (indicating that the current coding strategy cannot meet the application requirement of the actual scene), sequentially adjusting the weight values of the coding frames according to the priority order, wherein the sum of the weight values of the coding frames is a preset value (usually, the preset value is 1, but when in actual application, the data packet loss rate is also adjusted according to the requirement, such as setting the preset value to be 2, etc., the application is not particularly limited herein), and the weight value of the coding frame with high priority is greater than the weight value of the coding frame with low priority.
For example, the GoP in FIG. 6 includes I frames, P frames and B frames, where the I frames have the highest priority and the B frames have the lowest priority, and when the weights of the encoded frames are set, the weights of the I frames may be set to weight 1, the weights of the P frames may be set to weight 2, and the weights of the B frames may be set to weight 3. In one possible implementation, the following relationship may exist between weight 1, weight 2, and weight 3: weight 1 is greater than weight 2 and greater than weight 3, weight 1+2 is equal to the preset value, weight 2+6 is equal to weight 3.
Specifically, when the packet loss rate of the data is greater than the packet loss threshold, sequentially adjusting the weight value of the encoded frames according to the priority order, wherein the formats of the encoded frames in each preset time period are the same, and further comprising:
acquiring a first data packet loss rate in an ith preset time period; i is a positive integer; when the first data packet loss rate is greater than a packet loss threshold, adjusting the weight value of the coded frame in the (i+1) th preset time period according to a first strategy, wherein the first strategy comprises the step of increasing the weight value of the coded frame of the first priority; acquiring a second data packet loss rate in the (i+1) th preset time period; when the second data packet loss rate is smaller than the first data packet loss rate, the direction of the weight value of the coded frame is correctly adjusted according to the first strategy, so that the weight value of the coded frame in the (i+2) th preset time period is continuously adjusted according to the first strategy; or when the second data packet loss rate is not less than the first data packet loss rate, indicating that the direction of the weight value of the encoded frame is wrong according to the first strategy, so that the weight value of the encoded frame in the (i+2) th preset time period is adjusted according to the second strategy, wherein the second strategy comprises reducing the weight value of the encoded frame of the first priority; acquiring a third data packet loss rate in the (i+3) th preset time period; when the third data packet loss rate is smaller than the second data packet loss rate, the direction of the weight value of the encoded frame is correctly adjusted according to the second strategy, so that the weight value of the encoded frame in the (i+3) th preset time period is continuously adjusted according to the second strategy; or when the third data packet loss rate is not less than the second data packet loss rate, the direction error of the weight value of the encoded frame is adjusted according to the second strategy, so that the weight value of the encoded frame of the (i+3) th sliding window is adjusted according to the third strategy, and the third strategy comprises increasing the weight value of the encoded frame of the second priority.
For example, the encoding device determines 7 preset time periods, wherein the format of the encoded frame in each preset time period includes an I frame, a P frame and a B frame, the packet loss threshold is Y, and the data packet loss rate in the preset time period 1 is greater than Y, and then the weight value of the I frame in the preset time period 2 is increased (for example, 0.1 is increased), and the weight value of the P frame or the weight value of the B frame in the preset time period 2 is correspondingly reduced, or the weight value of the P frame and the weight value of the B frame are both reduced, or only the weight value of the B frame is reduced, so that the weight value of the P frame is kept unchanged, which is only illustrated herein, and is not limited specifically, so as to ensure that the weight value of the I frame, the weight value of the P frame and the weight value of the B frame are added to be 1. Acquiring the data packet loss rate of the preset time period 2, if the data packet loss rate is reduced, determining that the strategy for adjusting the weight value is correct, adjusting the weight according to the same weight adjustment strategy in the preset time period 3-7, but if the packet loss rate of any preset time period (assuming that the preset time period is the preset time period 5) of the preset time period 3-7 is less than or equal to Y, exiting the weight adjustment strategy (i.e. not adjusting the weight value of the encoded frame), and keeping the weight adjustment strategy of the preset time period 5 to adjust the weight values of the encoded frames in the preset time period 6 and the preset time period 7, and performing fountain code encoding processing.
Conversely, if the weight value of the I frame in the preset time period 2 is increased, and the weight value of the B frame in the preset time period 2 is correspondingly reduced, the packet loss rate of the data in the preset time period 2 is not reduced, but is increased, the weight value of the encoded frame in the preset time period 3 is adjusted by an opposite strategy, the weight value of the I frame in the preset time period 3 is reduced (for example, reduced by 0.1), and the weight value of the B frame in the preset time period 3 is correspondingly increased, so that the weight value of the I frame, the weight value of the P frame and the weight value of the B frame are added to be a preset value 1. And acquiring the data packet loss rate of the preset time period 3, and if the data packet loss rate of the preset time period 3 is reduced, determining that the adjustment strategy for reducing the weight value of the I frame is correct.
If the change of the data packet loss rate is not obvious no matter the weight value of the I frame in the preset time period 3 is increased or the weight value of the I frame in the preset time period 3 is reduced, then the weight value of the P frame is adjusted, the weight value of the P frame is increased (for example, 0.05 is increased), the weight value of the I frame or the weight value of the B frame is correspondingly reduced, and the weight value of the I frame, the weight value of the P frame and the weight value of the B frame are added to be a preset value 1. Acquiring the data packet loss rate of the preset time period 4, if the data packet loss rate is reduced, determining that the strategy for adjusting the weight value is correct, adjusting the weight according to the same weight adjustment strategy in the preset time period 5-7, and if the packet loss rate of any preset time period is less than or equal to Y, exiting the weight adjustment strategy, maintaining the weight value of the last adjusted encoded frame, and performing fountain code encoding processing.
In summary, in the fountain code coding embodiment provided in the present application, first, an attempt may be made to increase the weight value of the I frame in the preset period of time, to see if the packet loss rate changes toward a better direction; if yes, continuously increasing the weight value of the I frame in the subsequent preset time period until the packet loss rate meets the requirement; otherwise, the weight value of the I frame in the sliding window is reduced, and whether the packet loss rate changes towards the good direction is judged. If the packet loss rate cannot be changed significantly, whether the weight value of the I frame is increased or decreased, an attempt is made to adjust the weight values of the P frame and the B frame.
Optionally, the encoding device may further input the data packet loss rate into a weight adjustment model (where the weight adjustment model may be a machine learning model, a deep learning model, or other models not specifically limited herein), and determine the weight value of the encoded frame in the image group by using one or more of the following algorithms: a Monte Carlo algorithm, a back propagation algorithm, a Newton gradient method and a one-dimensional search algorithm. The method comprises the following steps:
(1) Firstly, a weight adjustment model of I/P/B frame weight and data packet loss rate is established, specifically, a deep neural network can be defined, the input is a current bandwidth and signal intensity sequence respectively, the output is weight values of I frame, P frame and B frame, the neural network selects proper weight values of I frame, P frame and B frame according to the current bandwidth and signal intensity change, and the optimization of parameters needs to be evaluated through an objective function, as shown in figure 7.
(2) And establishing an objective function serving as a parameter optimization condition measurement standard, and carrying out minimized optimization solution by taking the data packet loss rate as the objective function, wherein a least square method can be adopted to solve the optimal solution.
(3) The approximation of the minimum data packet loss rate is realized through an optimization method (BP, newton gradient and the like), so that the weight distribution of the proper I frame, P frame and B frame is obtained.
In step 503, the encoding device performs fountain encoding according to the weight value of the encoded frame to obtain an encoded data packet.
Specifically, after the encoding device determines the weight value of the encoded frame, the encoding device can perform data shaping, and when fountain encoding is performed, the weight value of the encoded frame can be used to adjust the degree value distribution of the fountain encoding, and the fountain encoding is performed according to the above-mentioned LT code or Raptor code encoding mode.
For example, the encoded frames include an I frame, a P frame, and a B frame, where the weight value of the I frame is weight 1, the weight of the P frame is weight 2, and the weight of the B frame is weight 3, and after the data shaping, when fountain encoding is performed by using an LT code, the degree value may be understood by referring to the existing degree distribution manner, which is not described herein.
In step 504, the encoding device transmits the encoded data packet to the decoding device.
Wherein the encoded data packet comprises: the position of the encoded frame and the fountain code degree value are used for the decoding device to successfully analyze the encoded data packet.
In step 505, the decoding apparatus parses the encoded data packet to obtain video data.
The fountain code can be better applied to the streaming media by the encoding and decoding processing of the fountain code in the mode, so that the encoding and decoding efficiency of the data in the streaming media is ensured, and good service experience can be brought to users.
The scheme provided by the embodiment of the application is mainly introduced from the perspective of equipment interaction. It will be appreciated that in order to achieve the above-described functionality, each device may comprise corresponding hardware structures and/or software modules that perform each function. Those of skill in the art will readily appreciate that the elements and algorithm steps of the examples described in connection with the embodiments disclosed herein may be implemented as hardware or combinations of hardware and computer software. Whether a function is implemented as hardware or computer software driven hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
The embodiment of the application may divide the functional units of the device according to the above method example, for example, each functional unit may be divided corresponding to each function, or two or more functions may be integrated in one unit. The integrated units may be implemented in hardware or in software functional units.
With integrated units, fig. 8 shows a possible exemplary block diagram of a fountain code processing device as referred to in an embodiment of the present application. As shown in fig. 8, the fountain code processing apparatus 800 may include: a processing unit 801 and a transceiver unit 802. The processing unit 801 is used for controlling and managing the operation of the fountain code processing device 800. The transceiver unit 802 is used to support communication between the fountain code processing apparatus 800 and other devices. Alternatively, the transceiver unit 802 may include a receiving unit and/or a transmitting unit for performing receiving and transmitting operations, respectively. Optionally, the fountain code processing device 800 may further include a storage unit for storing program codes and/or data of the fountain code processing device 800. The transceiver unit may be referred to as an input-output unit, a communication unit, etc., and may be a transceiver; the processing unit may be a processor. When the image processing apparatus is a module (e.g., a chip) in a communication device, the transceiver unit may be an input/output interface, an input/output circuit, an input/output pin, or the like, and may also be referred to as an interface, a communication interface, or an interface circuit, or the like; the processing unit may be a processor, a processing circuit, a logic circuit, or the like. Specifically, the image processing device may be the fountain code encoding device or the fountain code decoding device.
In one embodiment, the transceiver unit 802 is configured to obtain a packet loss rate of data; the processing unit 801 is configured to adjust a weight value of an encoded frame in the image group according to the packet loss rate, and perform fountain coding according to the weight value of the encoded frame to obtain an encoded data packet; the encoded data packet is transmitted to a decoding device.
In an alternative way, the data packet loss rate is indicated by one of the following parameters:
the decoding device is used for decoding the ratio of the unsuccessfully analyzed coded data packet to all received coded data packets in a preset time period;
the first ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the first time period to all the received coded data packets; the second ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the second time period to all the received coded data packets; the first time period and the second time period are adjacent time periods.
In an alternative manner, the processing unit 801 is specifically configured to: and in a preset time period, adjusting the weight value of the coding frame in the image group according to the data packet loss rate.
In an alternative, the encoded frame includes at least one of: i-frames, P-frames, and B-frames; the priority of the I frame, the P frame and the B frame is reduced in sequence; the processing unit 801 is specifically configured to:
And in a preset time period, when the data packet loss rate is greater than a packet loss threshold value, sequentially adjusting the weight values of the coded frames in the image group according to the priority order, wherein the sum of the weight values of the coded frames is a preset value, and the weight value of the coded frame with high priority is greater than the weight value of the coded frame with low priority.
In an alternative, the processing unit 801 is further configured to:
acquiring a first data packet loss rate in an ith preset time period, wherein i is a positive integer;
when the first data packet loss rate is greater than a packet loss threshold, adjusting the weight value of the encoded frame according to a first strategy, wherein the first strategy comprises increasing the weight value of the encoded frame of a first priority;
acquiring a second data packet loss rate in the (i+1) th preset time period;
when the second data packet loss rate is smaller than the first data packet loss rate, adjusting the weight value of the coded frame in the (i+2) th preset time period according to a first strategy; or when the second data packet loss rate is not less than the first data packet loss rate, adjusting the weight value of the coded frame in the (i+2) th preset time period according to a second strategy, wherein the second strategy comprises reducing the weight value of the coded frame of the first priority;
acquiring a third data packet loss rate in the (i+2) th preset time period;
When the third data packet loss rate is smaller than the second data packet loss rate, the weight value of the encoded frame in the (i+3) th preset time period is adjusted according to a second strategy, or when the third data packet loss rate is not smaller than the second data packet loss rate, the weight value of the encoded frame in the (i+3) th preset time period is adjusted according to a third strategy, wherein the third strategy comprises the step of increasing the weight value of the encoded frame of the second priority.
In an alternative, the processing unit 801 is further configured to: if the data packet loss rate in any preset time period is smaller than the packet loss threshold value, the weight value of the coding frame is not adjusted.
In an alternative, the preset value is 1.
In an alternative manner, the processing unit 801 is specifically configured to:
inputting the data packet loss rate into a weight adjustment model, and determining the weight value of the encoded frame in the image group by using one or more of the following algorithms: a Monte Carlo algorithm, a back propagation algorithm, a Newton gradient method and a one-dimensional search algorithm.
In an alternative way, the encoded data packet comprises: the position of the encoded frame, the fountain-encoded degree value.
In one embodiment, the transceiver unit 802 is configured to receive an encoded data packet; the coding data packet is determined by fountain coding according to the weight value of the coding frame; the processing unit 801 is configured to parse the encoded data packet to obtain video data.
In an alternative manner, the processing unit 801 is configured to determine a packet loss rate of data; and the receiving and transmitting unit is used for feeding back the data packet loss rate to the encoding device.
In an alternative way, the data packet loss rate is indicated by one of the following parameters:
the decoding device is used for decoding the ratio of the unsuccessfully analyzed coded data packet to all received coded data packets in a preset time period;
the first ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the first time period to all the received coded data packets; the second ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the second time period to all the received coded data packets; the first time period and the second time period are adjacent time periods.
As shown in fig. 9, a fountain code processing device 900 is further provided in the present application. The fountain code processing device 900 may be a chip or a system-on-chip. The fountain code processing device may be located in the apparatus according to any of the above-described method embodiments, for example, an image encoding device or an image decoding device, so as to execute an action corresponding to the apparatus.
Alternatively, the chip system may be constituted by a chip, and may also include a chip and other discrete devices.
The fountain code processing device 900 includes a processor 910.
A processor 910, configured to execute a computer program stored in the memory 920, to implement the actions of the respective devices in any of the method embodiments described above.
Fountain code processing device 900 may also include a memory 920 for storing computer programs.
Optionally, a memory 920 is coupled between the processor 910. Coupling is an indirect coupling or communication connection between devices, units, or modules, which may be in electrical, mechanical, or other form for the exchange of information between the devices, units, or modules. Optionally, the memory 920 is integrated with the processor 910.
The processor 910 and the memory 920 may each be one or more, and are not limited.
Optionally, in practical applications, the fountain code processing apparatus 900 may or may not include a transceiver 930, which is illustrated by a dashed box, and the fountain code processing apparatus 900 may perform information interaction with other devices through the transceiver 930. The transceiver 930 may be a circuit, bus, transceiver, or any other device that may be used to interact with information.
The specific connection medium between the transceiver 930, the processor 910, and the memory 920 is not limited in the embodiments of the present application. In the embodiment of the present application, the memory 920, the processor 910 and the transceiver 930 are connected by a bus, which is shown by a thick line in fig. 9, and the connection manner between other components is only schematically illustrated, but not limited thereto. The buses may be classified as address buses, data buses, control buses, etc. For ease of illustration, only one thick line is shown in fig. 6, but not only one bus or one type of bus. In the embodiments of the present application, the processor may be a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component, and may implement or execute the methods, steps, and logic blocks disclosed in the embodiments of the present application. The general purpose processor may be a microprocessor or any conventional processor or the like. The steps of a method disclosed in connection with the embodiments of the present application may be embodied directly in a hardware processor for execution, or in a combination of hardware and software modules in the processor for execution.
In the embodiment of the present application, the memory may be a nonvolatile memory, such as a hard disk (HDD) or a Solid State Drive (SSD), or may be a volatile memory (volatile memory), for example, a random-access memory (RAM). The memory may also be any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer, but is not limited to such. The memory in the embodiments of the present application may also be circuitry or any other device capable of implementing a memory function for storing a computer program, program instructions and/or data.
Based on the above embodiments, referring to fig. 10, another fountain code processing device 1000 is further provided in the embodiments of the present application, including: interface circuit 1010 and logic circuit 1020; interface circuit 1010, which may be understood as an input/output interface, may be configured to perform the steps of transceiving for each device in any of the method embodiments described above; the logic 1020 may be configured to execute code or instructions to perform the method performed by each device in any of the above embodiments, which is not described herein.
Based on the above embodiments, the present application further provides a computer readable storage medium storing instructions that, when executed, cause the methods performed by the respective devices in any of the method embodiments described above to be implemented, for example, cause the methods performed by the fountain code encoding device and the fountain code decoding device in the embodiment shown in fig. 5 to be implemented. The computer readable storage medium may include: various media capable of storing program codes, such as a U disk, a mobile hard disk, a read-only memory, a random access memory, a magnetic disk or an optical disk.
Based on the above embodiments, the embodiments of the present application provide a fountain code processing system, where the communication system includes a fountain code encoding device and a fountain code decoding device mentioned in any of the above method embodiments, and the fountain code encoding device and the fountain code decoding device may be used to execute a method executed by each device in any of the above method embodiments.
It will be appreciated by those skilled in the art that embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, magnetic disk storage, compact disc-read only memory (CD-ROM), optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to 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 image 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.

Claims (15)

1. A fountain code encoding method, comprising:
acquiring a data packet loss rate;
adjusting the weight value of the coding frame in the image group according to the data packet loss rate;
fountain coding is carried out according to the weight value of the coding frame, and a coding data packet is obtained;
transmitting the encoded data packet to a decoding device.
2. The method of claim 1, wherein the data packet loss rate is indicated by one of the following parameters:
the decoding device is used for decoding the ratio of the unsuccessfully analyzed coded data packet to all received coded data packets in a preset time period;
the first ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the first time period to all the received coded data packets; the second ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the second time period to all the received coded data packets; wherein the first time period and the second time period are adjacent time periods.
3. The method according to claim 1 or 2, wherein said adjusting the weight value of the encoded frames in the group of images according to the data packet loss rate comprises:
and in a preset time period, adjusting the weight value of the coding frame in the image group according to the data packet loss rate.
4. A method according to claim 3, wherein the encoded frame comprises at least one of: i-frames, P-frames, and B-frames; the priority of the I frame, the P frame and the B frame is reduced in sequence; the adjusting the weight value of the coding frame in the image group according to the data packet loss rate comprises the following steps:
And in a preset time period, when the data packet loss rate is greater than a packet loss threshold value, sequentially adjusting the weight values of the coded frames in the image group according to the priority order, wherein the sum of the weight values of the coded frames is a preset value, and the weight value of the coded frame with high priority is greater than the weight value of the coded frame with low priority.
5. The method of claim 4, wherein when the data packet loss rate is greater than a packet loss threshold, sequentially adjusting the weight values of the encoded frames in the image group according to the priority order, further comprising:
acquiring a first data packet loss rate in an ith preset time period, wherein i is a positive integer;
when the first data packet loss rate is greater than the packet loss threshold, adjusting the weight value of the encoded frame according to a first strategy, wherein the first strategy comprises increasing the weight value of the encoded frame of a first priority;
acquiring a second data packet loss rate in the (i+1) th preset time period;
when the second data packet loss rate is smaller than the first data packet loss rate, adjusting the weight value of the coded frame in the (i+2) th preset time period according to the first strategy; or when the second data packet loss rate is not less than the first data packet loss rate, adjusting the weight value of the coded frame in the (i+2) th preset time period according to a second strategy, wherein the second strategy comprises reducing the weight value of the coded frame of the first priority;
Acquiring a third data packet loss rate in the (i+2) th preset time period;
and when the third data packet loss rate is smaller than the second data packet loss rate, adjusting the weight value of the coded frame in the (i+3) th preset time period according to the second strategy, or when the third data packet loss rate is not smaller than the second data packet loss rate, adjusting the weight value of the coded frame in the (i+3) th preset time period according to a third strategy, wherein the third strategy comprises increasing the weight value of the coded frame of the second priority.
6. The method according to claim 4 or 5, wherein said adjusting the weight value of the encoded frames in the group of images according to the data packet loss rate further comprises:
if the data packet loss rate in any preset time period is smaller than the packet loss threshold value, the weight value of the coding frame is not adjusted.
7. The method according to any one of claims 4-6, wherein the preset value is 1.
8. A method according to any one of claims 1-3, wherein said adjusting the weight value of the encoded frames in the group of images according to the data packet loss rate comprises:
inputting the data packet loss rate into a weight adjustment model, and determining the weight value of the encoded frame in the image group by using one or more of the following algorithms:
A Monte Carlo algorithm, a back propagation algorithm, a Newton gradient method and a one-dimensional search algorithm.
9. The method according to any one of claims 1-8, wherein the encoded data packet comprises: the position of the encoded frame, the fountain encoded degree value.
10. A fountain code decoding method, comprising:
receiving the coded data packet; the encoded data packet is determined by fountain coding according to the weight value of the encoded frame;
and analyzing the coded data packet to obtain video data.
11. The method as recited in claim 10, further comprising:
determining a data packet loss rate;
and feeding the data packet loss rate back to the coding device.
12. The method of claim 11, wherein the data packet loss rate is indicated by one of the following parameters:
the decoding device is used for decoding the ratio of the unsuccessfully analyzed coded data packet to all received coded data packets in a preset time period;
the first ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the first time period to all the received coded data packets; the second ratio is the ratio of the coded data packet which is not successfully analyzed by the decoding device in the second time period to all the received coded data packets; wherein the first time period and the second time period are adjacent time periods.
13. A fountain code encoding device, comprising: a non-volatile memory and a processor coupled to each other, the processor invoking program code stored in the memory to perform the method of any of claims 1-9.
14. A fountain code decoding device, comprising: a non-volatile memory and a processor coupled to each other, the processor invoking program code stored in the memory to perform the method of any of claims 10-12.
15. A computer readable storage medium, characterized in that the computer readable storage medium stores a program code comprising instructions for a processor to perform the method according to any of claims 1-12.
CN202211121539.3A 2022-09-15 2022-09-15 Fountain code encoding and decoding method and device Pending CN117749317A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211121539.3A CN117749317A (en) 2022-09-15 2022-09-15 Fountain code encoding and decoding method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211121539.3A CN117749317A (en) 2022-09-15 2022-09-15 Fountain code encoding and decoding method and device

Publications (1)

Publication Number Publication Date
CN117749317A true CN117749317A (en) 2024-03-22

Family

ID=90251334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211121539.3A Pending CN117749317A (en) 2022-09-15 2022-09-15 Fountain code encoding and decoding method and device

Country Status (1)

Country Link
CN (1) CN117749317A (en)

Similar Documents

Publication Publication Date Title
US9209836B2 (en) Methods and systems for minimizing decoding delay in distributed video coding
US10116970B1 (en) Video distribution, storage, and streaming over time-varying channels
KR102173084B1 (en) Method and apparatus for transmitting and receiving data packets in a wireless communication system
US10476528B2 (en) Data packet processing method and device
JP7638011B2 (en) MEDIUM CONTENT BASED SELF-ADAPTIVE SYSTEM CODE FEC ENCODING AND DECODING METHOD, APPARATUS, SYSTEM AND MEDIUM
CN110876066A (en) Adaptive forward error correction method, apparatus, medium and device
JP2008504750A5 (en)
CN112866746A (en) Multi-path streaming cloud game control method, device, equipment and storage medium
US20080212673A1 (en) Systems and Methods for Adaptively Determining I Frames for Acquisition and Base and Enhancement Layer Balancing
KR101153520B1 (en) Methods of packetizing encoded symbol and apparatus for using the same
WO2017161124A1 (en) System for video streaming using delay-aware fountain codes
Seferoglu et al. Rate distortion optimized joint ARQ-FEC scheme for real-time wireless multimedia
CN104427405A (en) Apparatus for transmitting encoded video stream and method for transmitting the same
Hassan et al. Video streaming over wireless packet networks: An occupancy-based rate adaptation perspective
US20110249730A1 (en) Method and apparatus for generating video packets, method and apparatus for restoring video
CN117749317A (en) Fountain code encoding and decoding method and device
CN113037437A (en) Data transmission method and device
CN118158418A (en) Video coding method and related device
WO2021164405A1 (en) Data encoding and decoding methods, and related device and system
CN110875906A (en) Image recovery method and encoding end
WO2024018525A1 (en) Video processing device, method, and program
KR20130114720A (en) System and method for mitigating the cliff effect for content delivery over a heterogeneous network
CN107995502A (en) Realize the method and apparatus and system of adaptive stream media
He et al. Multiple description coding for uncompressed video streaming over 60GHz networks
CN113068065B (en) Low-delay streaming media transmission method based on viewpoint prediction

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