WO2019205871A1 - Image decoding and encoding methods and apparatuses, and device thereof - Google Patents

Image decoding and encoding methods and apparatuses, and device thereof Download PDF

Info

Publication number
WO2019205871A1
WO2019205871A1 PCT/CN2019/079807 CN2019079807W WO2019205871A1 WO 2019205871 A1 WO2019205871 A1 WO 2019205871A1 CN 2019079807 W CN2019079807 W CN 2019079807W WO 2019205871 A1 WO2019205871 A1 WO 2019205871A1
Authority
WO
WIPO (PCT)
Prior art keywords
neural network
index value
encoded
neural
decoding
Prior art date
Application number
PCT/CN2019/079807
Other languages
French (fr)
Chinese (zh)
Inventor
陈方栋
王莉
武晓阳
Original Assignee
杭州海康威视数字技术股份有限公司
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 杭州海康威视数字技术股份有限公司 filed Critical 杭州海康威视数字技术股份有限公司
Publication of WO2019205871A1 publication Critical patent/WO2019205871A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

Definitions

  • the present application relates to the field of video coding and decoding, and in particular, to an image decoding, encoding method, apparatus, and device thereof.
  • Neural Network is a non-programming, brain-like information processing method.
  • the essence of neural network is: a parallel distributed information processing function through network transformation and dynamic behavior, and different Degree and level imitate the information processing function of the human brain nervous system.
  • a neural network is an operational model, and its processing unit may include an input unit, an output unit, and a hidden unit.
  • the input unit is for accepting external signals and data
  • the output unit is for outputting the processing result
  • the hidden unit is a unit that is between the input unit and the output unit and cannot be observed from the outside.
  • neural networks can adaptively construct feature descriptions driven by training data, and have relatively high flexibility and universality, neural networks have been widely used in image classification, target detection, image coding and image decoding. application.
  • the same neural network is set at the encoding end and the decoding end, the encoding end uses the neural network for image encoding, and the decoding end uses the neural network for image decoding, thereby realizing image encoding and image decoding by using the neural network. .
  • the above method uses a fixed neural network to implement image coding and image decoding, and coding performance and decoding performance may be low.
  • the neural network A is set at the encoding end and the decoding end, and the neural network A may not be suitable for image encoding and image decoding of the current image, thus resulting in low coding performance and decoding performance.
  • the present application provides an image decoding, encoding method, apparatus and device thereof, which can improve encoding performance and improve decoding performance.
  • the present application provides an image decoding method, which is applied to a decoding end, and the method includes:
  • an encoded bitstream carrying encoded image sequence data; acquiring neural network decision information; selecting a neural network corresponding to the neural network decision information from a set of neural networks; using the selected neural network to The encoded image sequence data is decoded.
  • the present application provides an image encoding method, which is applied to an encoding end, and the method includes:
  • Selecting a neural network from the set of neural networks encoding the image sequence data using the selected neural network to obtain encoded image sequence data; and transmitting an encoded bitstream to the decoding end, the encoded bitstream carrying the encoded image sequence data.
  • the present application provides an image decoding apparatus, which is applied to a decoding end, and the apparatus includes:
  • an obtaining module configured to obtain an encoded bitstream, where the encoded bitstream carries encoded image sequence data
  • a selecting module configured to acquire neural network decision information, and select a neural network corresponding to the neural network decision information from the neural network set
  • a decoding module for decoding the encoded image sequence data using the selected neural network.
  • the present application provides an image encoding apparatus, which is applied to an encoding end, and the apparatus includes:
  • a selection module configured to select a neural network from the set of neural networks; an encoding module, configured to encode the image sequence data by using the selected neural network to obtain encoded image sequence data; and a sending module, configured to send the encoded bit to the decoding end And the encoded bitstream carries the encoded image sequence data.
  • the present application provides a decoding end device, a processor and a machine readable storage medium storing machine executable instructions executable by the processor; the processor for executing machine executable instructions To achieve the above image decoding method.
  • the application provides an encoding end device, a processor and a machine readable storage medium storing machine executable instructions executable by the processor; the processor for executing machine executable instructions To achieve the above image encoding method.
  • the encoding end may select one neural network from multiple neural networks of the neural network set, and use the neural network to encode the image sequence data instead of using a fixed neural network pair.
  • the image sequence data is encoded so that the encoding performance is high.
  • the decoding end may select a neural network from a plurality of neural networks of the neural network set and use the neural network to decode the encoded image sequence data, instead of decoding the encoded image sequence data using a fixed neural network, thereby enabling decoding performance. Higher.
  • the neural network used by the decoding end is the same as the neural network used by the encoding end, so that the encoded image sequence data can be correctly decoded.
  • FIG. 1 is a flowchart of an image encoding method in an embodiment of the present application.
  • FIG. 2 is a flowchart of an image encoding method in another embodiment of the present application.
  • FIG. 3 is a flowchart of an image decoding method in an embodiment of the present application.
  • FIG. 5 is a structural diagram of an image decoding apparatus in an embodiment of the present application.
  • FIG. 6 is a structural diagram of an image encoding device in an embodiment of the present application.
  • FIG. 7 is a hardware structural diagram of a decoding device in an embodiment of the present application.
  • FIG. 8 is a hardware structural diagram of an encoding end device in an embodiment of the present application.
  • first, second, third, etc. may be used to describe various information in the embodiments of the present application, such information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other.
  • first information may also be referred to as the second information without departing from the scope of the present application.
  • second information may also be referred to as the first information.
  • word “if” may be interpreted to mean “at time” or "when” or "in response to determination.”
  • An embodiment of the present application provides an image encoding method and an image decoding method corresponding to the image encoding method.
  • a neural network set may be set, the neural network set may include at least one neural network; when encoding the image sequence data, a neural network is selected from the neural network set, and the selected neural network is used to image sequence Instead of using a fixed neural network to encode the image sequence data, the data is encoded.
  • the same neural network set as the encoding end is set.
  • a neural network is selected from the neural network set (the same as the neural network selected by the encoding end), and the selected nerve is utilized. The network decodes the encoded image sequence data instead of using a fixed neural network to decode the encoded image sequence data.
  • image sequence data is encoded and decoded using a fixed neural network. Since the neural network is still developing rapidly and new neural networks are emerging, it is impossible to determine which neural network is optimal. For example, when encoding the image sequence data A, the performance of the neural network 1 is superior to that of the neural network 2, and when encoding the image sequence data B, the performance of the neural network 2 is superior to that of the neural network 1. Obviously, when the encoding end encodes the image sequence data B using a fixed neural network (such as the neural network 1), the encoding performance is low. When the decoding end decodes the encoded image sequence data of the image sequence data B using a fixed neural network (such as the neural network 1), the decoding performance is low.
  • a neural network set is established at the encoding end and the decoding end, and the neural network 1 and the neural network 2 may be included in the neural network set.
  • the encoding end may select the neural network 1 from the neural network set and encode the image sequence data A using the neural network 1 to improve the encoding performance; when encoding the image sequence data B
  • the encoding end can select the neural network 2 from the set of neural networks, and encode the image sequence data B using the neural network 2, thereby improving the encoding performance.
  • the decoding end can select the neural network 1 from the neural network set, and use the neural network 1 to decode the encoded image sequence data of the image sequence data A, thereby improving the decoding performance.
  • the decoding end can select the neural network 2 from the set of neural networks, and decode the encoded image sequence data of the image sequence data B using the neural network 2, thereby improving decoding performance.
  • FIG. 1 is a schematic flowchart of an image encoding method
  • the method may include the following steps.
  • the encoding end selects a neural network from a set of neural networks, the set of neural networks including at least one neural network.
  • a neural network within a set of neural networks may include, but is not limited to, a convolutional neural network, a recurrent neural network, a fully connected network, and the like.
  • the encoding end may establish a set of neural networks, such as the neural network set may include a neural network 1, a neural network 2, and a neural network 3, which may be the same as the set of neural networks at the decoding end.
  • the encoding side may select one of the neural network 1, the neural network 2, and the neural network 3 of the neural network set, for example, select the neural network 1.
  • the encoding end selects a neural network from the set of neural networks, and a neural network may be selected from the set of neural networks according to performance parameters of each neural network in the neural network set.
  • the first neural network is selected from the set of neural networks.
  • a neural network is randomly selected from a set of neural networks.
  • the above method is only an example, and there is no limitation on the selection method.
  • the following describes how to select a neural network from a set of neural networks based on the performance parameters of each neural network in the neural network set.
  • selecting one neural network from the neural network set according to performance parameters of each neural network in the neural network set may also include, but is not limited to, the following manner.
  • the first method can select a neural network from the set of neural networks according to the computing capability of the encoding end and the computational complexity of each neural network in the neural network set.
  • the second method the coding performance of each neural network in the neural network set can be obtained, and a neural network with the best coding performance is selected from the neural network set.
  • the encoding end can know its own computing power, and the computing power is an example of the adding operation. If a certain encoding end processes a maximum of 5 million addition operations per second, the computing power of the encoding end is 5 million. Other methods can also be used to represent computing power, and no limitation is imposed on this.
  • the encoding end can know the computational complexity of each neural network. The operation complexity is an example of how many addition operations need to be performed per second. If the neural network 1 needs to execute 3 million per second.
  • the neural network 2 needs to perform 4 million addition operations per second, and the neural network 3 needs to perform 6 million addition operations per second, then the coding end knows that the computational complexity of the neural network 1 is 3 million, and the neural network 2 The computational complexity is 4 million, and the computational complexity of neural network 3 is 6 million. Other ways of representing the computational complexity of the neural network are also possible, and no limitation is imposed on this.
  • the encoding end selects a neural network from the neural network set, including but not limited to the following.
  • the neural network with the largest computational complexity and the difference between the computing power and the computational complexity is selected from the neural network set.
  • the computational complexity of the neural network 1 is 3 million
  • the computational complexity of the neural network 2 is 4 million, which is less than the computing power of the encoding end of 5 million, and the difference between the computing power of 5 million and the computational complexity of 3 million is the largest, so the neural network is selected. 1.
  • a neural network having a computational complexity smaller than the computational power and having the smallest difference between the computational power and the computational complexity is selected from the neural network set.
  • the difference between the computing power of 5 million and the computational complexity of 4 million is the smallest, so the neural network 2 is selected.
  • the above method is only an example, and there is no limitation on this, as long as the computational complexity of the selected neural network is smaller than the computing power.
  • the coding end may encode the image sequence data by using each neural network in the neural network set, determine the coding performance of each neural network according to the coding result, and select a neural network with the best coding performance. For example, for a certain image sequence data, if the coding performance of the neural network 1 is better than the coding performance of the neural network 2, and the coding performance of the neural network 2 is superior to the coding performance of the neural network 3, the neural network 1 may be selected for the image sequence.
  • the data is encoded.
  • the encoding end When the encoding end encodes the image sequence data by using each neural network in the neural network set, it only selects the neural network with the best encoding performance, instead of the real encoding process. Therefore, the encoded image sequence data will not be
  • the encoding end is sent to the decoding end, but is discarded by the encoding end.
  • RDO Rate Distortion Optimized
  • RDO can be used to determine the coding performance of each neural network, that is, to encode image sequence data using a neural network. After that, the RDO can be used to determine the coding performance of the neural network.
  • RDO can be used to determine the coding performance of the neural network.
  • There are other ways to determine the coding performance of the neural network which is not limited.
  • the initial order of each neural network in the set of neural networks may be pre-configured, and no limitation is imposed thereon.
  • the initial sequence is Neural Network 1, Neural Network 2, and Neural Network 3
  • the initial sequence of neural network sets at the decoding end is also Neural Network 1, Neural Network 2, and Neural Network 3.
  • the order of each neural network in the set of neural networks may be fixed, for example, the order does not change.
  • the order of each neural network in the set of neural networks may also vary.
  • the order can be sorted according to the actual frequency of use, for example, the first neural network is the most frequently used neural network, and the last neural network is the neural network with the lowest frequency of use; or, according to the actual frequency of use, from small to The order is sorted by a large order, for example, the first neural network is the lowest frequency neural network, and the last neural network is the most frequently used neural network.
  • Step 102 The encoding end encodes the image sequence data by using the selected neural network to obtain encoded image sequence data.
  • the encoded image sequence data is referred to as coded image sequence data.
  • the encoding end encodes the image sequence data by using the selected neural network to obtain encoded image sequence data, including: encoding the image sequence by using the selected neural network to obtain encoded image sequence data; or, using the selected nerve
  • the network encodes the image to obtain encoded image sequence data; or, the image block is encoded using the selected neural network to obtain encoded image sequence data.
  • the image sequence A includes the image A1 and the image A2
  • the image A1 includes the image block A11 and the image block A12
  • the image A2 includes the image block A21 and the image block A22.
  • a neural network can be selected for image sequence A. If neural network 1 is selected, the entire image sequence A is encoded using neural network 1.
  • a neural network may be selected for image A1, and if neural network 1 is selected, image A1 is encoded using neural network 1. It is also possible to select a neural network for image A2, and if neural network 2 is selected, image A2 is encoded using neural network 2.
  • one neural network may be selected for image block A11, and if neural network 1 is selected, image block A11 is encoded using neural network 1.
  • a neural network may be selected for image block A12, and if neural network 2 is selected, image block A12 is encoded using neural network 2.
  • a neural network may be selected for image block A22, and if neural network 2 is selected, image block A22 is encoded using neural network 2.
  • the video is encoded, and the encoding end may involve modules such as prediction, transform, quantization, entropy coding, filtering, etc. Therefore, the prediction module may select a neural network from the neural network set and utilize the selected neural network.
  • the network predicts the image sequence data; the transformation module can select the neural network from the neural network set and transform the image sequence data by using the selected neural network; the quantization module can select the neural network from the neural network set and utilize the selected nerve The network quantizes the image sequence data; the entropy coding module can select the neural network from the neural network set, and entropy encodes the image sequence data by using the selected neural network; the filtering module can select the neural network from the neural network set and use the selection The neural network filters the image sequence data.
  • the selected neural networks may be the same or different.
  • Each module can be selected in accordance with the method described in step 101.
  • Step 103 The encoding end sends an encoded bit stream to the decoding end, where the encoded bit stream carries the encoded image sequence data.
  • the encoding end may also determine an index value of the selected neural network in the neural network set before transmitting the encoded bit stream to the decoding end, such as selecting a neural network.
  • the index value can be 1 when the first neural network is aggregated.
  • the index value may also be added to the encoded bit stream, for example, the encoded bit stream may carry the encoded image sequence data and the index value.
  • the encoding end needs to add the index value of the neural network selected by each module in the encoded bit stream.
  • the index value may be encoded, and the encoded index value is added to the encoded bit stream.
  • the neural network decision strategy may use a default index value, such as a default index value of 1. Based on this, before the encoding end sends the encoded bit stream to the decoding end, the index value of the selected neural network in the neural network set may also be determined. If the index value is 1, the encoded bit stream may be sent to the decoding end by using an implicit strategy. For example, the encoded bit stream does not carry an index value of 1, and only carries encoded image sequence data.
  • an explicit bit strategy may be used to send the coded bit stream to the decoder, for example, the coded bit stream carries the coded picture sequence data and the index value 2.
  • the neural network decision strategy may also be to use the last index value, for example, the coded bit stream sent by the encoding end to the decoding end last time (the last transmitted coded bit stream may be an encoded bit stream sent by an explicit policy, It may also be an index value corresponding to an encoded bit stream transmitted by an implicit policy, and the index value is 1 as above. Based on this, before the encoding end sends the encoded bit stream to the decoding end, the index value of the selected neural network in the neural network set may also be determined.
  • the encoded bit stream may be sent to the decoding end by using an implicit strategy. For example, the encoded bit stream does not carry an index value of 1, and only carries encoded image sequence data. If the index value is not 1, if the index value is 2, an explicit bit strategy may be used to send the coded bit stream to the decoder, for example, the coded bit stream carries the coded picture sequence data and the index value 2.
  • an explicit bit strategy may be used to send the coded bit stream to the decoder, for example, the coded bit stream carries the coded picture sequence data and the index value 2.
  • the use of the default index value and the use of the last index value are only examples of neural network decision strategies, and no limitation is imposed as long as the encoder can use the neural network decision strategy to determine the index value of the neural network in the neural network set.
  • variable length encoding strategy may be used to encode the index value, and the encoded index value is added to the encoded bit stream; Or use a fixed length coding strategy to encode the index value, and add the encoded index value to the encoded bit stream.
  • the length of the encoded index value is indefinite. For example, when the index value is 1, the length of the encoded index value is 1 bit, for example, the encoded index value is 0b1; when the index value is 2, the length of the encoded index value is 2 bits, such as the encoded index. The value is 0b10; when the index value is 4, the length of the encoded index value is 3 bits, such as the encoded index value is 0b100; and so on.
  • the length of the encoded index value is fixed, such as fixed to 4 bits. For example, when the index value is 1, the encoded index value is 0b0001; when the index value is 2, the encoded index value is 0b0010; when the index value is 4, the encoded index value is 0b0100; and so on.
  • the encoding end may select one neural network from multiple neural networks of the neural network set, and use the neural network to encode the image sequence data instead of using a fixed neural network pair.
  • Image sequence data is encoded to improve coding performance.
  • another flow diagram of the image encoding method may include the following steps.
  • Step 201 The encoding end acquires a neural network set from a plurality of neural network sets.
  • the encoding end may configure a plurality of neural network sets, each of the neural network sets may include at least one neural network; for example, the encoding end may configure the neural network set 1, the neural network set 2, and the neural network set 3. Based on this, when the encoding end sends the image sequence data to the decoding end, one of the neural network sets can be selected from the neural network set 1, the neural network set 2, and the neural network set 3.
  • the encoding end configures the neural network set 1 for the decoding end A and configures the neural network set 2 and the neural network set 3 for the decoding end B
  • the image sequence is sent to the decoding end A.
  • the encoder can select the neural network set 1.
  • the encoding end when transmitting image sequence data to the decoding end B, the encoding end may select the neural network set 2 or the neural network set 3, and the selection manner is not limited.
  • Step 202 The encoding end selects a neural network from the acquired set of neural networks.
  • step 202 For the processing of step 202, refer to the processing of step 101, and details are not described herein again.
  • Step 203 The encoding end encodes the image sequence data by using the selected neural network to obtain encoded image sequence data.
  • Step 203 refer to the process of step 102, and details are not described herein again.
  • Step 204 The encoding end sends an encoded bit stream to the decoding end, where the encoded bit stream carries the encoded image sequence data.
  • the encoded bit stream may carry the index value of the selected neural network in the neural network set, and if an implicit strategy is adopted, the encoded bit stream is used. The index value of the selected neural network in the set of neural networks is not carried.
  • the encoding end may also determine the identifier of the neural network set, for example, the identifier of the neural network set 1 may be 1, and so on. .
  • the encoding end may add the identifier of the neural network set to the encoded bit stream.
  • the encoding may also encode the identifier, and add the encoded identifier to the encoded bit stream. Therefore, when the encoding end transmits the encoded bit stream to the decoding end, the encoded bit stream can carry the index value of the selected neural network in the neural network set and the identifier of the neural network set.
  • a neural network set decision policy may also be configured on the encoding end and the decoding end, and the neural network set decision policy may use a default identifier, such as a default identifier of 1. Based on this, if the identifier of the neural network set is 1, the encrypted bit stream is sent to the decoding end by using an implicit policy, for example, the encoded bit stream does not carry the identifier 1; if the identifier of the neural network set is 2, the explicit strategy is used to decode The end transmits an encoded bit stream, for example, the encoded bit stream carries the identifier 2.
  • the neural network set decision strategy may be to use the last identifier, for example, the identifier corresponding to the encoded bit stream that the encoding end sent to the decoding end last time, which is identified as 1 by the above. Based on this, if the identifier of the neural network set is 1, the encrypted bit stream is sent to the decoding end by using an implicit policy, for example, the encoded bit stream does not carry the identifier 1; if the identifier of the neural network set is 2, the explicit strategy is used to decode The end transmits an encoded bit stream, for example, the encoded bit stream carries the identifier 2.
  • the use of the default identity and the use of the last identity is only an example of a neural network set decision strategy, which is not limited, as long as the neural network set decision strategy can be used to determine the identity of the neural network set.
  • the encoding end encodes the identifier of the neural network set, and when the encoded identifier is added to the encoded bit stream, the variable length coding strategy may be used to encode the identifier of the neural network set, and the encoded neural network set is added to the encoded bit stream. Or the identifier of the neural network set may be encoded by a fixed length coding strategy, and the identifier of the encoded neural network set is added to the encoded bit stream.
  • the encoding end may select one neural network set from multiple neural network sets, and select one neural network from multiple neural networks of the neural network set, and use the neural network.
  • the image sequence data is encoded instead of using a fixed neural network to encode the image sequence data, so that the coding performance is higher and the user experience is improved.
  • the method may include the following steps.
  • Step 301 The decoding end acquires an encoded bit stream, where the encoded bit stream carries encoded image sequence data.
  • the encoded bit stream may be sent by the encoding end to the decoding end, or may be obtained after the decoding end encodes the image sequence data locally. This is not limited, and the encoding end sends the encoded bit stream to the decoding end as an example. Description. For the sending process, refer to the first embodiment or the second embodiment.
  • Step 302 The decoding end acquires neural network decision information, and selects a neural network corresponding to the neural network decision information from the neural network set; wherein the neural network set includes at least one neural network.
  • Neural networks within the set of neural networks may include, but are not limited to, convolutional neural networks, recurrent neural networks, fully connected networks, and the like.
  • the decoder may establish a set of neural networks, such as the set of neural networks may include a neural network 1, a neural network 2, and a neural network 3, which may be the same as the set of neural networks at the encoding end.
  • the decoding side may select a neural network from the neural network 1, the neural network 2, and the neural network 3 of the neural network set, for example, the neural network 1.
  • the decoding end acquires the neural network decision information, and selects the neural network corresponding to the neural network decision information from the neural network set, and may include: if the encoded bit stream carries the index value of the neural network, the decoding end determines the index value as the neural network The network decides information and selects a neural network corresponding to the index value from the set of neural networks. Alternatively, the decoding end determines the index value of the neural network according to the neural network decision strategy, and determines the index value as the neural network decision information, and selects a neural network corresponding to the index value from the neural network set.
  • the decoding end determines the index value of the neural network according to the neural network decision policy, and may include: if the neural network decision policy uses the default index value, the default index value may be determined as an index value of the neural network; or If the neural network decision strategy uses the last index value, the last used index value can be determined as the index value of the neural network.
  • the encoded bit stream carries an index value of the neural network, such as an index value of the neural network in the neural network set, and if the index value of the neural network is 1,
  • the decoder can select the first neural network from the set of neural networks.
  • the same neural network decision strategy can be configured on both the encoding side and the decoding side.
  • the neural network decision strategy can use a default index value, and the default index value can be 1. Based on this, if the encoding end uses an implicit strategy to send the encoded bit stream to the decoding end, for example, the index value of the encoded bit stream does not carry the neural network, and the decoding end can determine the default index value 1 as the index value of the neural network, and can The first neural network is selected from the set of neural networks. Alternatively, the neural network decision strategy can be to use the last index value.
  • the encoded bit stream does not carry the index value of the neural network, and the decoding end can use the index value corresponding to the last received encoded bit stream, such as an index value.
  • the decoding end can use the index value corresponding to the last received encoded bit stream, such as an index value. 1. Determine the index value of the neural network and select the first neural network from the neural network set.
  • the last received encoded bitstream may be an encoded bitstream that is transmitted by the encoding end using an explicit policy or an encoded bitstream that is transmitted using an implicit policy.
  • the use of the default index value and the use of the last index value are only examples of neural network decision strategies. Without limitation, the decoder can use the neural network decision strategy to determine the index value of the neural network in the neural network set.
  • the index value when the encoded bit stream carries the index value of the neural network, the index value may be an index value encoded by a variable length coding strategy. Therefore, after the decoding end obtains the encoded bit stream, variable length decoding may also be used.
  • a strategy such as a decoding strategy corresponding to a variable length coding strategy, decodes the encoded bitstream to obtain an index value of the neural network.
  • the index value may be an index value encoded by a fixed length coding strategy. Therefore, after obtaining the coded bit stream, the decoding end may also adopt a fixed length decoding strategy, such as a decoding strategy corresponding to the fixed length coding strategy, to perform the coded bit stream. Decode to get the index value of the neural network.
  • the initial order of each neural network in the set of neural networks may be pre-configured, without limitation.
  • the initial sequence is Neural Network 1, Neural Network 2, and Neural Network 3
  • the initial sequence of neural network sets at the encoding end is also Neural Network 1, Neural Network 2, and Neural Network 3.
  • the order of each neural network in the set of neural networks may be fixed, for example, the order does not change.
  • the order of each neural network in the set of neural networks may also vary.
  • the order can be sorted according to the actual frequency of use, for example, the first neural network is the most frequently used neural network, and the last neural network is the neural network with the lowest frequency of use; or, according to the actual frequency of use, from small to The order is sorted by a large order, for example, the first neural network is the lowest frequency neural network, and the last neural network is the most frequently used neural network.
  • the order of the neural network at the encoding end is fixed, the order of the neural network at the decoding end is also fixed, and the order of the encoding end is consistent with the order of the decoding end.
  • the neural networks at the encoding end are sorted in descending order of the actual frequency of use, the neural networks at the decoding end are also sorted in descending order of the actual frequency of use.
  • the neural networks at the decoding end are also sorted in order of actual use frequency from small to large.
  • step 303 the decoding end decodes the encoded image sequence data by using the selected neural network.
  • the decoding end decoding the encoded image sequence data by using the selected neural network may include: the image sequence may be decoded by using the selected neural network; or the image may be decoded by using the selected neural network; or The image block can be decoded using the selected neural network.
  • image sequence A includes image A1 and image A2
  • image A1 includes image block A11 and image block A12
  • image A2 includes image block A21 and image block A22.
  • a neural network may be selected for the image sequence A. If the neural network 1 is selected, the encoded image sequence data corresponding to the entire image sequence A is decoded using the neural network 1.
  • a neural network may be selected for the image A1, and if the neural network 1 is selected, the encoded image sequence data corresponding to the image A1 may be decoded using the neural network 1. It is also possible to select a neural network for the image A2. If the neural network 2 is selected, the encoded image sequence data corresponding to the image A2 can be decoded using the neural network 2.
  • a neural network may be selected for the image block A11. If the neural network 1 is selected, the encoded image sequence data corresponding to the image block A11 may be decoded using the neural network 1. A neural network may be selected for the image block A12. If the neural network 2 is selected, the encoded image sequence data corresponding to the image block A12 may be decoded using the neural network 2. It is also possible to select a neural network for the image block A21, and if the neural network 3 is selected, the encoded image sequence data corresponding to the image block A21 can be decoded using the neural network 3. A neural network may be selected for the image block A22. If the neural network 2 is selected, the encoded image sequence data corresponding to the image block A22 may be decoded using the neural network 2.
  • the decoding end can select a neural network from the neural network set and use the neural network to decode the encoded image sequence data instead of using a fixed neural network to decode the encoded image sequence data, thereby enabling decoding performance.
  • the neural network used by the decoding end is the same as the neural network used by the encoding end, so that the encoded image sequence data can be correctly decoded.
  • FIG. 4 another flow diagram of the image decoding method may include the following steps.
  • Step 401 The decoding end acquires an encoded bitstream, where the encoded bitstream carries encoded image sequence data.
  • step 401 For the processing of the step 401, refer to the processing of step 301, and details are not described herein again.
  • Step 402 The decoding end acquires neural network set decision information, and determines a neural network set corresponding to the neural network set decision information.
  • the decoding end may configure at least one neural network set, each neural network set includes at least one neural network; for example, the decoding end configures the neural network set 1 and the neural network set 2, and the decoding end may be from the neural network set 1 and the neural network set 2 Select a neural network collection.
  • the decoding end acquires the neural network set decision information and determines the neural network set corresponding to the neural network set decision information, which may include, but is not limited to, the following methods. If the encoded bitstream carries an identifier of the set of neural networks, the decoding end may determine the identifier as neural network set decision information and determine a neural network set corresponding to the identifier. Alternatively, the decoding end determines the identifier of the neural network set according to the neural network set decision strategy, and determines the identifier as the neural network set decision information, and determines the neural network set corresponding to the identifier.
  • the decoding end determines the identifier of the neural network set according to the neural network set decision strategy, and may include, but is not limited to: if the neural network set decision policy uses the default identifier, the decoding end determines the default identifier as the identifier of the neural network set; Alternatively, if the neural network set decision policy is to use the last identifier, the decoder determines the last used identifier as the identifier of the neural network set.
  • the encoded bit stream also carries an identifier of the neural network set, such as the identifier 1, and the decoding end can select the neural network set 1 from all the neural network sets.
  • a neural network set decision strategy is configured on the encoding end and the decoding end. The neural network set decision strategy may use a default identifier, and the default identifier may be 1.
  • the encoded bit stream does not carry the identifier of the neural network set, and the decoding end determines the default identifier 1 as the identifier of the neural network set, and selects the neural network from all the neural network sets.
  • Network collection 1 For another example, the neural network set decision strategy may use the last identifier.
  • the encoded bit stream does not carry the identifier of the neural network set, and the decoding end will receive the last received
  • the identifier corresponding to the encoded bit stream such as the identifier 1
  • the set of neural networks 1 is selected from all sets of neural networks.
  • the use of the default identity and the use of the last identity is only an example of a neural network set decision strategy.
  • the neural network set decision strategy is not limited as long as the decoder can determine the identity of the neural network set using the neural network set decision strategy.
  • the identifier when the encoded bitstream carries the identifier of the neural network set, the identifier may be an identifier encoded by the variable length coding strategy. Therefore, after the decoder obtains the encoded bitstream, the variable length decoding strategy may also be adopted. For example, a decoding strategy corresponding to the variable length coding strategy decodes the encoded bit stream to obtain an identifier of the neural network set.
  • the identifier may be an identifier encoded by a fixed length coding strategy. Therefore, after obtaining the coded bit stream, the decoding end may also use a fixed length decoding strategy, such as a decoding strategy corresponding to the fixed length coding strategy, to decode the encoded bit stream. Get the identity of the neural network collection.
  • Step 403 The decoding end acquires neural network decision information, and selects a neural network corresponding to the neural network decision information from the neural network set; the neural network set includes at least one neural network.
  • step 403 For the process of step 403, refer to the process of step 302, and details are not described herein again.
  • step 404 the decoding end decodes the encoded image sequence data by using the selected neural network.
  • step 404 For the processing of the step 404, refer to the processing of step 303, and details are not described herein again.
  • the decoding end may select a neural network set from at least one neural network set, and select one neural network from the plurality of neural networks of the neural network set, and use the neural network to decode the encoded image sequence data.
  • the decoding performance is higher and the user experience is improved.
  • the neural network used by the decoding end is the same as the neural network used by the encoding end, so that the encoded image sequence data is correctly decoded.
  • an image decoding apparatus is also provided in the embodiment of the present application, which is applied to the decoding end, as shown in FIG. 5, which is a structural diagram of the apparatus, and the apparatus specifically includes:
  • An obtaining module 501 configured to acquire an encoded bitstream, where the encoded bitstream carries encoded image sequence data
  • the selecting module 502 is configured to acquire neural network decision information, and select a neural network corresponding to the neural network decision information from the neural network set;
  • the decoding module 503 is configured to decode the encoded image sequence data by using the selected neural network.
  • the selecting module 502 is further configured to: if the encoded bitstream carries an index value of a neural network, determine the index value as the neural network decision information; Or determining an index value of the neural network according to a neural network decision policy, and determining the index value as the neural network decision information; the selecting module 502 determining an index value of the neural network according to the neural network decision policy Specifically, if the neural network decision policy is to use a default index value, determining the default index value as an index value of the neural network; or, if the neural network decision policy is using the last index value, The last used index value is determined as the index value of the neural network.
  • the selecting module 502 is further configured to acquire neural network set decision information, and determine a neural network set corresponding to the neural network set decision information; the selecting module 502 obtains The neural network set decision information is specifically used to: if the encoded bit stream carries the identifier of the neural network set, determine the identifier as the neural network set decision information; or determine the identifier of the neural network set according to the neural network set decision strategy, and The identification is determined as neural network set decision information.
  • the selecting module 502 acquires an identifier of a neural network set carried by the encoded bitstream, including: if the identifier is an identifier encoded by a variable length coding strategy, Decoding the encoded bitstream with a variable length decoding strategy to obtain an identifier of the neural network set, wherein the variable length decoding policy corresponds to the variable length coding strategy.
  • the neural network set includes at least one neural network, which is sorted according to an actual use frequency in descending order, or is sorted according to an actual use frequency from small to large. .
  • the embodiment of the present application further provides an image encoding apparatus, which is applied to an encoding end, as shown in FIG. 6 , which is a structural diagram of the apparatus, and the apparatus includes: a selecting module 601, Selecting a neural network from the set of neural networks; encoding module 602, configured to encode the image sequence data by using the selected neural network to obtain encoded image sequence data; and sending module 603, configured to send the encoded bit stream to the decoding end,
  • the encoded bitstream carries the encoded image sequence data.
  • the selecting module 601 is further configured to: select a neural network from the neural network set according to a performance parameter of each neural network in the neural network set;
  • the selecting module 601 when selecting a neural network from the neural network set according to a performance parameter of each neural network in the neural network set, is specifically used according to: The computing capability of the encoding end, the computational complexity of each neural network in the set of neural networks, selecting a neural network from the set of neural networks; or acquiring the coding performance of each neural network in the neural network set, A neural network with optimal coding performance is selected as the neural network in the set of neural networks.
  • the sending module 603 is further configured to: add, in the encoded bitstream, an index value of the selected neural network in the neural network set.
  • the sending module 603 adds, in the encoded bitstream, an index value of the selected neural network in the neural network set, including: using a variable length coding strategy coding The index value is described, and the encoded index value is added to the encoded bit stream.
  • the sending module 603 is further configured to: add an identifier of the neural network set in the encoded bit stream.
  • the sending module 603 adds an identifier of the neural network set in the encoded bitstream, including: encoding the identifier by using a variable length coding strategy, and in the coding bit Add the encoded identifier to the stream.
  • the neural network set includes at least one neural network, which is sorted according to an actual use frequency in descending order, or is sorted according to an actual use frequency from small to large. .
  • the invention includes a processor and a machine readable storage medium, wherein: the machine readable storage medium stores machine executable instructions executable by the processor; the processor is operative to execute machine executable instructions to implement the present application
  • the invention includes a processor and a machine readable storage medium, wherein: the machine readable storage medium stores machine executable instructions executable by the processor; the processor is operative to execute machine executable instructions to implement the present application
  • the image encoding method disclosed in the first embodiment and the second embodiment is specifically shown in FIG. 8 .
  • the machine-readable storage medium described above can be any electronic, magnetic, optical, or other physical storage device that can contain or store information such as executable instructions, data, and so forth.
  • the machine-readable storage medium may be: RAM (Radom Access Memory), volatile memory, non-volatile memory, flash memory, storage drive (such as a hard disk drive), solid state drive, any type of storage disk. (such as a disc, DVD, etc.), or a similar storage medium, or a combination thereof.
  • the system, device, module or unit illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product having a certain function.
  • a typical implementation device is a computer, and the specific form of the computer may be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email transceiver, and a game control.
  • embodiments of the present application can be provided as a method, system, or computer program product.
  • the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment in combination of software and hardware.
  • embodiments of the present application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • these computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the instruction means implements the functions specified in one or more blocks of the flowchart or in a flow or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The present application provides image decoding and encoding methods and apparatuses, and a device thereof. The image decoding method comprises: obtaining a coded bitstream, the coded bitstream carrying coded image sequence data; obtaining neural network decision information, and selecting a neural network corresponding to the neural network decision information from a neural network set; and decoding the coded image sequence data by using the selected neural network.

Description

一种图像解码、编码方法、装置及其设备Image decoding, encoding method, device and device thereof
相关申请的交叉引用Cross-reference to related applications
本专利申请要求于2018年04月25日提交的、申请号为201810380105.2、发明名称为“一种图像解码、编码方法、装置及其设备”的中国专利申请的优先权,该申请的全文以引用的方式并入本文中。The present application claims priority to Chinese Patent Application No. 201 810 380 810, filed on Apr. 25, 20, the entire disclosure of which is incorporated herein by reference. The way is incorporated in this article.
技术领域Technical field
本申请涉及视频编解码领域,尤其是涉及一种图像解码、编码方法、装置及其设备。The present application relates to the field of video coding and decoding, and in particular, to an image decoding, encoding method, apparatus, and device thereof.
背景技术Background technique
神经网络(Neural Network,NN)是一种非程序化、类大脑风格的信息处理方式,神经网络的本质是:通过网络变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。神经网络是一种运算模型,其处理单元可以包括输入单元、输出单元和隐单元。输入单元用于接受外部的信号与数据,输出单元用于实现处理结果的输出,而隐单元是处在输入单元和输出单元之间、且不能由外部观察的单元。Neural Network (NN) is a non-programming, brain-like information processing method. The essence of neural network is: a parallel distributed information processing function through network transformation and dynamic behavior, and different Degree and level imitate the information processing function of the human brain nervous system. A neural network is an operational model, and its processing unit may include an input unit, an output unit, and a hidden unit. The input unit is for accepting external signals and data, the output unit is for outputting the processing result, and the hidden unit is a unit that is between the input unit and the output unit and cannot be observed from the outside.
由于神经网络能够在训练数据驱动下,自适应地构建特征描述,具有相对较高的灵活性和普适性,因此,神经网络在图像分类、目标检测、图像编码和图像解码等领域得到了广泛应用。为了实现图像编码和图像解码,在编码端和解码端设置相同的神经网络,编码端使用神经网络进行图像编码,解码端使用该神经网络进行图像解码,从而利用该神经网络实现图像编码和图像解码。Because neural networks can adaptively construct feature descriptions driven by training data, and have relatively high flexibility and universality, neural networks have been widely used in image classification, target detection, image coding and image decoding. application. In order to realize image coding and image decoding, the same neural network is set at the encoding end and the decoding end, the encoding end uses the neural network for image encoding, and the decoding end uses the neural network for image decoding, thereby realizing image encoding and image decoding by using the neural network. .
上述方式使用固定的神经网络实现图像编码和图像解码,编码性能、解码性能可能较低。例如,在编码端和解码端设置神经网络A,而神经网络A可能并不适合对当前的图像进行图像编码和图像解码,因此,导致编码性能、解码性能较低。The above method uses a fixed neural network to implement image coding and image decoding, and coding performance and decoding performance may be low. For example, the neural network A is set at the encoding end and the decoding end, and the neural network A may not be suitable for image encoding and image decoding of the current image, thus resulting in low coding performance and decoding performance.
发明内容Summary of the invention
本申请提供了一种图像解码、编码方法、装置及其设备,可以提高编码性能,并可以提高解码性能。The present application provides an image decoding, encoding method, apparatus and device thereof, which can improve encoding performance and improve decoding performance.
本申请提供一种图像解码方法,应用于解码端,所述方法包括:The present application provides an image decoding method, which is applied to a decoding end, and the method includes:
获取编码比特流,所述编码比特流携带编码图像序列数据;获取神经网络决策信息;从神经网络集合中选择与所述神经网络决策信息对应的神经网络;利用选择的所述神经网络对所述编码图像序列数据进行解码。Obtaining an encoded bitstream, the encoded bitstream carrying encoded image sequence data; acquiring neural network decision information; selecting a neural network corresponding to the neural network decision information from a set of neural networks; using the selected neural network to The encoded image sequence data is decoded.
本申请提供一种图像编码方法,应用于编码端,所述方法包括:The present application provides an image encoding method, which is applied to an encoding end, and the method includes:
从神经网络集合选择神经网络;利用选择的所述神经网络对图像序列数据进行编码,得到编码图像序列数据;向解码端发送编码比特流,所述编码比特流携带所述编码图像序列数据。Selecting a neural network from the set of neural networks; encoding the image sequence data using the selected neural network to obtain encoded image sequence data; and transmitting an encoded bitstream to the decoding end, the encoded bitstream carrying the encoded image sequence data.
本申请提供一种图像解码装置,应用于解码端,所述装置包括:The present application provides an image decoding apparatus, which is applied to a decoding end, and the apparatus includes:
获取模块,用于获取编码比特流,所述编码比特流携带编码图像序列数据;选择模块,用于获取神经网络决策信息,并从神经网络集合中选择与所述神经网络决策信息对应的神经网络;解码模块,用于利用选择的所述神经网络对所述编码图像序列数据进行解码。And an obtaining module, configured to obtain an encoded bitstream, where the encoded bitstream carries encoded image sequence data; a selecting module, configured to acquire neural network decision information, and select a neural network corresponding to the neural network decision information from the neural network set And a decoding module for decoding the encoded image sequence data using the selected neural network.
本申请提供一种图像编码装置,应用于编码端,所述装置包括:The present application provides an image encoding apparatus, which is applied to an encoding end, and the apparatus includes:
选择模块,用于从神经网络集合中选择神经网络;编码模块,用于利用选择的所述神经网络对图像序列数据进行编码,得到编码图像序列数据;发送模块,用于向解码端发送编码比特流,所述编码比特流携带所述编码图像序列数据。a selection module, configured to select a neural network from the set of neural networks; an encoding module, configured to encode the image sequence data by using the selected neural network to obtain encoded image sequence data; and a sending module, configured to send the encoded bit to the decoding end And the encoded bitstream carries the encoded image sequence data.
本申请提供一种解码端设备,处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的图像解码方法。The present application provides a decoding end device, a processor and a machine readable storage medium storing machine executable instructions executable by the processor; the processor for executing machine executable instructions To achieve the above image decoding method.
本申请提供一种编码端设备,处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的图像编码方法。The application provides an encoding end device, a processor and a machine readable storage medium storing machine executable instructions executable by the processor; the processor for executing machine executable instructions To achieve the above image encoding method.
由以上技术方案可见,本申请实施例中,编码端可以从神经网络集合的多个神经网络中选择一个神经网络,并使用该神经网络对图像序列数据进行编码,而不是使用固定的神经网络对图像序列数据进行编码,从而使编码性能较高。解码端可以从神经网络集合的多个神经网络中选择一个神经网络,并使用该神经网络对编码图像序列数据进行解码,而不是使用固定的神经网络对编码图像序列数据进行解码,从而使解码性能较高。 解码端使用的神经网络与编码端使用的神经网络相同,从而可以对编码图像序列数据进行正确的解码。It can be seen from the foregoing technical solutions that, in the embodiment of the present application, the encoding end may select one neural network from multiple neural networks of the neural network set, and use the neural network to encode the image sequence data instead of using a fixed neural network pair. The image sequence data is encoded so that the encoding performance is high. The decoding end may select a neural network from a plurality of neural networks of the neural network set and use the neural network to decode the encoded image sequence data, instead of decoding the encoded image sequence data using a fixed neural network, thereby enabling decoding performance. Higher. The neural network used by the decoding end is the same as the neural network used by the encoding end, so that the encoded image sequence data can be correctly decoded.
附图说明DRAWINGS
图1是本申请一种实施方式中的图像编码方法的流程图;1 is a flowchart of an image encoding method in an embodiment of the present application;
图2是本申请另一种实施方式中的图像编码方法的流程图;2 is a flowchart of an image encoding method in another embodiment of the present application;
图3是本申请一种实施方式中的图像解码方法的流程图;3 is a flowchart of an image decoding method in an embodiment of the present application;
图4是本申请另一种实施方式中的图像解码方法的流程图;4 is a flowchart of an image decoding method in another embodiment of the present application;
图5是本申请一种实施方式中的图像解码装置的结构图;FIG. 5 is a structural diagram of an image decoding apparatus in an embodiment of the present application; FIG.
图6是本申请一种实施方式中的图像编码装置的结构图;6 is a structural diagram of an image encoding device in an embodiment of the present application;
图7是本申请一种实施方式中的解码端设备的硬件结构图;7 is a hardware structural diagram of a decoding device in an embodiment of the present application;
图8是本申请一种实施方式中的编码端设备的硬件结构图。FIG. 8 is a hardware structural diagram of an encoding end device in an embodiment of the present application.
具体实施方式detailed description
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。The terms used in the embodiments of the present application are for the purpose of describing the specific embodiments, and are not intended to limit the application. The singular forms "a", "the", and "the" It should also be understood that the term "and/or" as used herein refers to any and all possible combinations of one or more of the associated listed items.
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。It should be understood that although the terms first, second, third, etc. may be used to describe various information in the embodiments of the present application, such information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, the first information may also be referred to as the second information without departing from the scope of the present application. Similarly, the second information may also be referred to as the first information. Depending on the context, in addition, the word "if" may be interpreted to mean "at time" or "when" or "in response to determination."
本申请实施例提出一种图像编码方法、与该图像编码方法对应的图像解码方法。在编码端,可以设置神经网络集合,该神经网络集合可以包括至少一个神经网络;在对图像序列数据进行编码时,是从神经网络集合中选择一个神经网络,并利用选择的神经网络对图像序列数据进行编码,而不是使用固定的神经网络对图像序列数据进行编码。在解码端,设置与编码端相同的神经网络集合,在对编码图像序列数据进行解码时,是从 神经网络集合中选择一个神经网络(与编码端选择的神经网络相同),并利用选择的神经网络对编码图像序列数据进行解码,而不是使用固定的神经网络对编码图像序列数据进行解码。An embodiment of the present application provides an image encoding method and an image decoding method corresponding to the image encoding method. At the encoding end, a neural network set may be set, the neural network set may include at least one neural network; when encoding the image sequence data, a neural network is selected from the neural network set, and the selected neural network is used to image sequence Instead of using a fixed neural network to encode the image sequence data, the data is encoded. At the decoding end, the same neural network set as the encoding end is set. When decoding the encoded image sequence data, a neural network is selected from the neural network set (the same as the neural network selected by the encoding end), and the selected nerve is utilized. The network decodes the encoded image sequence data instead of using a fixed neural network to decode the encoded image sequence data.
在传统方式中,使用固定的神经网络对图像序列数据进行编码和解码。由于神经网络仍在快速发展,新神经网络层出不穷,因此,哪个神经网络的性能最优还无法确定。例如,在对图像序列数据A进行编码时,神经网络1的性能优于神经网络2的性能,在对图像序列数据B进行编码时,神经网络2的性能优于神经网络1的性能。显然,编码端在使用固定的神经网络(如神经网络1)对图像序列数据B进行编码时,编码性能较低。解码端在使用固定的神经网络(如神经网络1)对图像序列数据B的编码图像序列数据进行解码时,解码性能较低。In a conventional manner, image sequence data is encoded and decoded using a fixed neural network. Since the neural network is still developing rapidly and new neural networks are emerging, it is impossible to determine which neural network is optimal. For example, when encoding the image sequence data A, the performance of the neural network 1 is superior to that of the neural network 2, and when encoding the image sequence data B, the performance of the neural network 2 is superior to that of the neural network 1. Obviously, when the encoding end encodes the image sequence data B using a fixed neural network (such as the neural network 1), the encoding performance is low. When the decoding end decodes the encoded image sequence data of the image sequence data B using a fixed neural network (such as the neural network 1), the decoding performance is low.
与上述方式不同的是,本申请实施例中,在编码端和解码端建立神经网络集合,在该神经网络集合中,均可以包括神经网络1和神经网络2。在对图像序列数据A进行编码时,编码端可以从神经网络集合中选择神经网络1,并使用神经网络1对图像序列数据A进行编码,从而提高编码性能;在对图像序列数据B进行编码时,编码端可以从神经网络集合中选择神经网络2,并使用神经网络2对图像序列数据B进行编码,从而提高编码性能。同理,解码端可以从神经网络集合中选择神经网络1,并使用神经网络1对图像序列数据A的编码图像序列数据进行解码,从而提高解码性能。解码端可以从神经网络集合中选择神经网络2,并使用神经网络2对图像序列数据B的编码图像序列数据进行解码,从而提高解码性能。Different from the above manner, in the embodiment of the present application, a neural network set is established at the encoding end and the decoding end, and the neural network 1 and the neural network 2 may be included in the neural network set. When encoding the image sequence data A, the encoding end may select the neural network 1 from the neural network set and encode the image sequence data A using the neural network 1 to improve the encoding performance; when encoding the image sequence data B The encoding end can select the neural network 2 from the set of neural networks, and encode the image sequence data B using the neural network 2, thereby improving the encoding performance. Similarly, the decoding end can select the neural network 1 from the neural network set, and use the neural network 1 to decode the encoded image sequence data of the image sequence data A, thereby improving the decoding performance. The decoding end can select the neural network 2 from the set of neural networks, and decode the encoded image sequence data of the image sequence data B using the neural network 2, thereby improving decoding performance.
以下结合具体实施例,对图像编码方法、图像解码方法进行详细说明。The image encoding method and the image decoding method will be described in detail below with reference to specific embodiments.
实施例一Embodiment 1
参见图1所示,为图像编码方法的一个流程示意图,该方法可以包括以下步骤。Referring to FIG. 1 , which is a schematic flowchart of an image encoding method, the method may include the following steps.
步骤101,编码端从神经网络集合选择神经网络,该神经网络集合包括至少一个神经网络。作为一种示例,在神经网络集合内的神经网络,可以包括但不限于:卷积神经网络、循环神经网络、全连接网络等。In step 101, the encoding end selects a neural network from a set of neural networks, the set of neural networks including at least one neural network. As an example, a neural network within a set of neural networks may include, but is not limited to, a convolutional neural network, a recurrent neural network, a fully connected network, and the like.
在步骤101之前,编码端可以建立一个神经网络集合,如该神经网络集合可以包括神经网络1、神经网络2和神经网络3,该神经网络集合与解码端的神经网络集合可以相同。在步骤101中,编码端可以从神经网络集合的神经网络1、神经网络2和神经网络3中选择一个神经网络,例如,选择神经网络1。Before step 101, the encoding end may establish a set of neural networks, such as the neural network set may include a neural network 1, a neural network 2, and a neural network 3, which may be the same as the set of neural networks at the decoding end. In step 101, the encoding side may select one of the neural network 1, the neural network 2, and the neural network 3 of the neural network set, for example, select the neural network 1.
在步骤101中,编码端从神经网络集合选择神经网络,可以根据神经网络集合中每个神经网络的性能参数,从神经网络集合中选择一个神经网络。或者,从神经网络集合中选择第一个神经网络。或者,从神经网络集合中选择最后一个神经网络。或者,从神经网络集合中随机选择一个神经网络。In step 101, the encoding end selects a neural network from the set of neural networks, and a neural network may be selected from the set of neural networks according to performance parameters of each neural network in the neural network set. Alternatively, the first neural network is selected from the set of neural networks. Alternatively, select the last neural network from the set of neural networks. Alternatively, a neural network is randomly selected from a set of neural networks.
上述方式只是示例,对此选择方式不做限制。下面说明如何根据神经网络集合中每个神经网络的性能参数,从神经网络集合中选择一个神经网络。The above method is only an example, and there is no limitation on the selection method. The following describes how to select a neural network from a set of neural networks based on the performance parameters of each neural network in the neural network set.
在本申请的一种可能的实施方式中,根据神经网络集合中每个神经网络的性能参数,从神经网络集合中选择一个神经网络,还可以包括但不限于如下方式。方式一、可以根据编码端的运算能力、神经网络集合中每个神经网络的运算复杂度,从该神经网络集合中选择一个神经网络。或者,方式二、可以获取神经网络集合中每个神经网络的编码性能,并从该神经网络集合中选择编码性能最优的一个神经网络。In a possible implementation manner of the present application, selecting one neural network from the neural network set according to performance parameters of each neural network in the neural network set may also include, but is not limited to, the following manner. The first method can select a neural network from the set of neural networks according to the computing capability of the encoding end and the computational complexity of each neural network in the neural network set. Or, in the second method, the coding performance of each neural network in the neural network set can be obtained, and a neural network with the best coding performance is selected from the neural network set.
在方式一中,编码端可以获知自身的运算能力,以运算能力是加法运算为例,若某一个编码端每秒最多处理500万个加法运算,则该编码端的运算能力为500万。还可以使用其它方式表示运算能力,对此不做限制。针对神经网络集合中的每个神经网络,编码端可以获知每个神经网络的运算复杂度,以运算复杂度是每秒需要执行多少次加法运算为例,若神经网络1每秒需要执行300万次加法运算,神经网络2每秒需要执行400万次加法运算,神经网络3每秒需要执行600万次加法运算,则该编码端获知神经网络1的运算复杂度为300万,神经网络2的运算复杂度为400万,神经网络3的运算复杂度为600万。还可以使用其它方式表示神经网络的运算复杂度,对此不做限制。In the first method, the encoding end can know its own computing power, and the computing power is an example of the adding operation. If a certain encoding end processes a maximum of 5 million addition operations per second, the computing power of the encoding end is 5 million. Other methods can also be used to represent computing power, and no limitation is imposed on this. For each neural network in the neural network set, the encoding end can know the computational complexity of each neural network. The operation complexity is an example of how many addition operations need to be performed per second. If the neural network 1 needs to execute 3 million per second. Sub-addition operation, the neural network 2 needs to perform 4 million addition operations per second, and the neural network 3 needs to perform 6 million addition operations per second, then the coding end knows that the computational complexity of the neural network 1 is 3 million, and the neural network 2 The computational complexity is 4 million, and the computational complexity of neural network 3 is 6 million. Other ways of representing the computational complexity of the neural network are also possible, and no limitation is imposed on this.
基于编码端的运算能力、神经网络集合中每个神经网络的运算复杂度,该编码端从神经网络集合中选择一个神经网络,包括但不限于如下方式。从神经网络集合中选择运算复杂度小于运算能力、且运算能力与运算复杂度的差值最大的神经网络。例如,神经网络1的运算复杂度300万、神经网络2的运算复杂度400万均小于编码端的运算能力500万,且运算能力500万与运算复杂度300万的差值最大,因此选择神经网络1。或者,从神经网络集合中选择运算复杂度小于运算能力、且运算能力与运算复杂度的差值最小的神经网络。例如,运算能力500万与运算复杂度400万的差值最小,因此选择神经网络2。上述方式只是示例,对此不做限制,只要选择的神经网络的运算复杂度小于运算能力即可。Based on the computing power of the encoding end and the computational complexity of each neural network in the neural network set, the encoding end selects a neural network from the neural network set, including but not limited to the following. The neural network with the largest computational complexity and the difference between the computing power and the computational complexity is selected from the neural network set. For example, the computational complexity of the neural network 1 is 3 million, and the computational complexity of the neural network 2 is 4 million, which is less than the computing power of the encoding end of 5 million, and the difference between the computing power of 5 million and the computational complexity of 3 million is the largest, so the neural network is selected. 1. Alternatively, a neural network having a computational complexity smaller than the computational power and having the smallest difference between the computational power and the computational complexity is selected from the neural network set. For example, the difference between the computing power of 5 million and the computational complexity of 4 million is the smallest, so the neural network 2 is selected. The above method is only an example, and there is no limitation on this, as long as the computational complexity of the selected neural network is smaller than the computing power.
在方式二中,编码端可以利用神经网络集合中的每个神经网络对图像序列数据进行编码,根据编码结果确定每个神经网络的编码性能,并选择编码性能最优的神经网络。 例如,对某一图像序列数据,若神经网络1的编码性能优于神经网络2的编码性能,神经网络2的编码性能优于神经网络3的编码性能,则可以选择神经网络1对该图像序列数据进行编码。In the second method, the coding end may encode the image sequence data by using each neural network in the neural network set, determine the coding performance of each neural network according to the coding result, and select a neural network with the best coding performance. For example, for a certain image sequence data, if the coding performance of the neural network 1 is better than the coding performance of the neural network 2, and the coding performance of the neural network 2 is superior to the coding performance of the neural network 3, the neural network 1 may be selected for the image sequence. The data is encoded.
编码端利用神经网络集合中的每个神经网络对图像序列数据进行编码时,只是为了选择出编码性能最优的神经网络,而不是真正的编码过程,因此,编码后的图像序列数据不会被编码端发送给解码端,而是被编码端丢弃。When the encoding end encodes the image sequence data by using each neural network in the neural network set, it only selects the neural network with the best encoding performance, instead of the real encoding process. Therefore, the encoded image sequence data will not be The encoding end is sent to the decoding end, but is discarded by the encoding end.
作为一种示例,为了确定每个神经网络的编码性能,可以采用RDO(Rate Distortion Optimized,率失真原则)确定每个神经网络的编码性能,也就是说,在利用神经网络对图像序列数据进行编码后,则可以使用RDO确定该神经网络的编码性能。还可以采用其它方式确定神经网络的编码性能,对此不做限制。As an example, in order to determine the coding performance of each neural network, RDO (Rate Distortion Optimized) can be used to determine the coding performance of each neural network, that is, to encode image sequence data using a neural network. After that, the RDO can be used to determine the coding performance of the neural network. There are other ways to determine the coding performance of the neural network, which is not limited.
在步骤101中,可以预先配置神经网络集合中的每个神经网络的初始顺序,对此不做限制。例如,初始顺序是神经网络1、神经网络2和神经网络3,且解码端的神经网络集合的初始顺序也是神经网络1、神经网络2和神经网络3。In step 101, the initial order of each neural network in the set of neural networks may be pre-configured, and no limitation is imposed thereon. For example, the initial sequence is Neural Network 1, Neural Network 2, and Neural Network 3, and the initial sequence of neural network sets at the decoding end is also Neural Network 1, Neural Network 2, and Neural Network 3.
在后续处理过程中,神经网络集合中的每个神经网络的顺序可以固定,例如,顺序不发生变化。或者,神经网络集合中的每个神经网络的顺序也可以发生变化。例如,可以按照实际使用频率从大到小的顺序进行排序,例如第一个神经网络为使用频率最高的神经网络,最后一个神经网络为使用频率最低的神经网络;或者,按照实际使用频率从小到大的顺序进行排序,例如第一个神经网络为使用频率最低的神经网络,最后一个神经网络为使用频率最高的神经网络。In the subsequent processing, the order of each neural network in the set of neural networks may be fixed, for example, the order does not change. Alternatively, the order of each neural network in the set of neural networks may also vary. For example, the order can be sorted according to the actual frequency of use, for example, the first neural network is the most frequently used neural network, and the last neural network is the neural network with the lowest frequency of use; or, according to the actual frequency of use, from small to The order is sorted by a large order, for example, the first neural network is the lowest frequency neural network, and the last neural network is the most frequently used neural network.
步骤102,编码端利用选择的神经网络对图像序列数据进行编码,得到编码图像序列数据。为区分方便,将编码后的图像序列数据称为编码图像序列数据。Step 102: The encoding end encodes the image sequence data by using the selected neural network to obtain encoded image sequence data. For convenience of distinction, the encoded image sequence data is referred to as coded image sequence data.
作为一种示例,编码端利用选择的神经网络对图像序列数据进行编码,得到编码图像序列数据,包括:利用选择的神经网络对图像序列进行编码,得到编码图像序列数据;或者,利用选择的神经网络对图像进行编码,得到编码图像序列数据;或者,利用选择的神经网络对图像块进行编码,得到编码图像序列数据。As an example, the encoding end encodes the image sequence data by using the selected neural network to obtain encoded image sequence data, including: encoding the image sequence by using the selected neural network to obtain encoded image sequence data; or, using the selected nerve The network encodes the image to obtain encoded image sequence data; or, the image block is encoded using the selected neural network to obtain encoded image sequence data.
例如,对图像序列A进行编码时,假设图像序列A包括图像A1和图像A2,图像A1包括图像块A11和图像块A12,图像A2包括图像块A21和图像块A22。For example, when encoding the image sequence A, it is assumed that the image sequence A includes the image A1 and the image A2, the image A1 includes the image block A11 and the image block A12, and the image A2 includes the image block A21 and the image block A22.
若供选择的神经网络适用于图像序列,则可以为图像序列A选择一个神经网络,若选择神经网络1,则使用神经网络1对整个图像序列A进行编码。If the alternative neural network is suitable for the image sequence, then a neural network can be selected for image sequence A. If neural network 1 is selected, the entire image sequence A is encoded using neural network 1.
若供选择的神经网络适用于整个图像,则可以为图像A1选择一个神经网络,若选择神经网络1,则使用神经网络1对图像A1进行编码。还可以为图像A2选择一个神经网络,若选择神经网络2,则使用神经网络2对图像A2进行编码。If the alternative neural network is suitable for the entire image, then a neural network may be selected for image A1, and if neural network 1 is selected, image A1 is encoded using neural network 1. It is also possible to select a neural network for image A2, and if neural network 2 is selected, image A2 is encoded using neural network 2.
作为一种示例,若供选择的神经网络只适用于图像块,则可以为图像块A11选择一个神经网络,若选择神经网络1,则使用神经网络1对图像块A11进行编码。可以为图像块A12选择一个神经网络,若选择神经网络2,则使用神经网络2对图像块A12进行编码。而且,还可以为图像块A21选择一个神经网络,若选择神经网络3,则使用神经网络3对图像块A21进行编码。可以为图像块A22选择一个神经网络,若选择神经网络2,则使用神经网络2对图像块A22进行编码。As an example, if the alternative neural network is only applicable to the image block, then one neural network may be selected for image block A11, and if neural network 1 is selected, image block A11 is encoded using neural network 1. A neural network may be selected for image block A12, and if neural network 2 is selected, image block A12 is encoded using neural network 2. Moreover, it is also possible to select one neural network for the image block A21, and if the neural network 3 is selected, the image block A21 is encoded using the neural network 3. A neural network may be selected for image block A22, and if neural network 2 is selected, image block A22 is encoded using neural network 2.
当图像序列数据为视频时,对视频进行编码,编码端可能会涉及预测、变换、量化、熵编码、滤波等模块,因此,预测模块可以从神经网络集合中选择神经网络,并利用选择的神经网络对图像序列数据进行预测;变换模块可以从神经网络集合中选择神经网络,并利用选择的神经网络对图像序列数据进行变换;量化模块可以从神经网络集合中选择神经网络,并利用选择的神经网络对图像序列数据进行量化;熵编码模块可以从神经网络集合中选择神经网络,并利用选择的神经网络对图像序列数据进行熵编码;滤波模块可以从神经网络集合中选择神经网络,并利用选择的神经网络对图像序列数据进行滤波。When the image sequence data is video, the video is encoded, and the encoding end may involve modules such as prediction, transform, quantization, entropy coding, filtering, etc. Therefore, the prediction module may select a neural network from the neural network set and utilize the selected neural network. The network predicts the image sequence data; the transformation module can select the neural network from the neural network set and transform the image sequence data by using the selected neural network; the quantization module can select the neural network from the neural network set and utilize the selected nerve The network quantizes the image sequence data; the entropy coding module can select the neural network from the neural network set, and entropy encodes the image sequence data by using the selected neural network; the filtering module can select the neural network from the neural network set and use the selection The neural network filters the image sequence data.
需要说明的是,在上述预测、变换、量化、熵编码、滤波等模块选择神经网络时,所选择的神经网络可以相同也可以不同。每个模块都可以按照步骤101中所述的方法来进行选择。It should be noted that, when the neural network is selected by the above modules of prediction, transformation, quantization, entropy coding, filtering, etc., the selected neural networks may be the same or different. Each module can be selected in accordance with the method described in step 101.
步骤103,编码端向解码端发送编码比特流,该编码比特流携带编码图像序列数据。Step 103: The encoding end sends an encoded bit stream to the decoding end, where the encoded bit stream carries the encoded image sequence data.
作为一种示例,若采用显式策略向解码端发送编码比特流,则编码端向解码端发送编码比特流之前,还可以确定选择的神经网络在神经网络集合中的索引值,如选择神经网络集合的第一个神经网络时,索引值可以为1。基于此,编码端在向解码端发送编码比特流时,还可以在该编码比特流中添加该索引值,例如该编码比特流可以携带编码图像序列数据和该索引值。需要说明的是,在编码端有多个模块都需要选择神经网络时,编码端需要在编码比特流中添加每个模块选择的神经网络的索引值。而且,编码端在该编码比特流中添加索引值时,还可以对该索引值进行编码,并在该编码比特流中添加编码后的索引值。As an example, if an explicit bit strategy is used to send an encoded bit stream to the decoding end, the encoding end may also determine an index value of the selected neural network in the neural network set before transmitting the encoded bit stream to the decoding end, such as selecting a neural network. The index value can be 1 when the first neural network is aggregated. Based on this, when the encoding end sends the encoded bit stream to the decoding end, the index value may also be added to the encoded bit stream, for example, the encoded bit stream may carry the encoded image sequence data and the index value. It should be noted that when there are multiple modules on the encoding end that need to select a neural network, the encoding end needs to add the index value of the neural network selected by each module in the encoded bit stream. Moreover, when the encoding end adds an index value to the encoded bit stream, the index value may be encoded, and the encoded index value is added to the encoded bit stream.
还可以在编码端和解码端配置神经网络决策策略,该神经网络决策策略可以为使用 默认索引值,如默认索引值为1。基于此,编码端向解码端发送编码比特流之前,还可以确定选择的神经网络在神经网络集合中的索引值,若索引值为1,则可以采用隐式策略向解码端发送编码比特流,例如编码比特流不携带索引值1,只携带编码图像序列数据。若索引值不为1,如索引值为2,则可以采用显式策略向解码端发送编码比特流,例如编码比特流携带编码图像序列数据和索引值2。例如,该神经网络决策策略还可以为使用上次索引值,例如编码端上次向解码端发送的编码比特流(上次发送的编码比特流,可以是采用显式策略发送的编码比特流,也可以是采用隐式策略发送的编码比特流)对应的索引值,如上次索引值为1。基于此,编码端向解码端发送编码比特流之前,还可以确定选择的神经网络在神经网络集合中的索引值,若索引值为1,则可以采用隐式策略向解码端发送编码比特流,例如编码比特流不携带索引值1,只携带编码图像序列数据。若索引值不为1,如索引值为2,则可以采用显式策略向解码端发送编码比特流,例如编码比特流携带编码图像序列数据和索引值2。使用默认索引值和使用上次索引值只是神经网络决策策略的示例,对此不做限制,只要编码端能够利用神经网络决策策略确定神经网络在神经网络集合中的索引值即可。It is also possible to configure a neural network decision strategy at the encoding end and the decoding end. The neural network decision strategy may use a default index value, such as a default index value of 1. Based on this, before the encoding end sends the encoded bit stream to the decoding end, the index value of the selected neural network in the neural network set may also be determined. If the index value is 1, the encoded bit stream may be sent to the decoding end by using an implicit strategy. For example, the encoded bit stream does not carry an index value of 1, and only carries encoded image sequence data. If the index value is not 1, if the index value is 2, an explicit bit strategy may be used to send the coded bit stream to the decoder, for example, the coded bit stream carries the coded picture sequence data and the index value 2. For example, the neural network decision strategy may also be to use the last index value, for example, the coded bit stream sent by the encoding end to the decoding end last time (the last transmitted coded bit stream may be an encoded bit stream sent by an explicit policy, It may also be an index value corresponding to an encoded bit stream transmitted by an implicit policy, and the index value is 1 as above. Based on this, before the encoding end sends the encoded bit stream to the decoding end, the index value of the selected neural network in the neural network set may also be determined. If the index value is 1, the encoded bit stream may be sent to the decoding end by using an implicit strategy. For example, the encoded bit stream does not carry an index value of 1, and only carries encoded image sequence data. If the index value is not 1, if the index value is 2, an explicit bit strategy may be used to send the coded bit stream to the decoder, for example, the coded bit stream carries the coded picture sequence data and the index value 2. The use of the default index value and the use of the last index value are only examples of neural network decision strategies, and no limitation is imposed as long as the encoder can use the neural network decision strategy to determine the index value of the neural network in the neural network set.
作为一种示例,编码端对索引值进行编码,并在编码比特流中添加编码后的索引值时,可以采用可变长度编码策略编码索引值,在编码比特流中添加编码后的索引值;或采用定长编码策略编码索引值,在编码比特流中添加编码后的索引值。As an example, when the encoding end encodes the index value and adds the encoded index value to the encoded bit stream, the variable length encoding strategy may be used to encode the index value, and the encoded index value is added to the encoded bit stream; Or use a fixed length coding strategy to encode the index value, and add the encoded index value to the encoded bit stream.
在采用可变长度编码策略编码索引值时,编码后的索引值的长度是不定的。例如,索引值为1时,编码后的索引值的长度为1位,如编码后的索引值为0b1;索引值为2时,编码后的索引值的长度为2位,如编码后的索引值为0b10;索引值为4时,编码后的索引值的长度为3位,如编码后的索引值为0b100;以此类推。When encoding an index value using a variable length coding strategy, the length of the encoded index value is indefinite. For example, when the index value is 1, the length of the encoded index value is 1 bit, for example, the encoded index value is 0b1; when the index value is 2, the length of the encoded index value is 2 bits, such as the encoded index. The value is 0b10; when the index value is 4, the length of the encoded index value is 3 bits, such as the encoded index value is 0b100; and so on.
在采用定长编码策略编码索引值时,编码后的索引值的长度是固定的,如固定为4位。例如,索引值为1时,编码后的索引值为0b0001;索引值为2时,编码后的索引值为0b0010;索引值为4时,编码后的索引值为0b0100;以此类推。When the index value is encoded by the fixed length coding strategy, the length of the encoded index value is fixed, such as fixed to 4 bits. For example, when the index value is 1, the encoded index value is 0b0001; when the index value is 2, the encoded index value is 0b0010; when the index value is 4, the encoded index value is 0b0100; and so on.
由以上技术方案可见,本申请实施例中,编码端可以从神经网络集合的多个神经网络中选择一个神经网络,并使用该神经网络对图像序列数据进行编码,而不是使用固定的神经网络对图像序列数据进行编码,从而提高编码性能。It can be seen from the foregoing technical solutions that, in the embodiment of the present application, the encoding end may select one neural network from multiple neural networks of the neural network set, and use the neural network to encode the image sequence data instead of using a fixed neural network pair. Image sequence data is encoded to improve coding performance.
实施例二Embodiment 2
参见图2所示,为图像编码方法的另一个流程示意图,该方法可以包括如下步骤。Referring to FIG. 2, another flow diagram of the image encoding method may include the following steps.
步骤201,编码端从多个神经网络集合中获取一个神经网络集合。Step 201: The encoding end acquires a neural network set from a plurality of neural network sets.
作为一种示例,编码端可以配置多个神经网络集合,每个神经网络集合可以包括至少一个神经网络;例如,编码端可以配置神经网络集合1、神经网络集合2和神经网络集合3。基于此,编码端在向解码端发送图像序列数据时,可以从神经网络集合1、神经网络集合2和神经网络集合3中选择一个神经网络集合。As an example, the encoding end may configure a plurality of neural network sets, each of the neural network sets may include at least one neural network; for example, the encoding end may configure the neural network set 1, the neural network set 2, and the neural network set 3. Based on this, when the encoding end sends the image sequence data to the decoding end, one of the neural network sets can be selected from the neural network set 1, the neural network set 2, and the neural network set 3.
在本申请的一种可能的实施方式中,假设编码端为解码端A配置神经网络集合1,并为解码端B配置神经网络集合2和神经网络集合3,则在向解码端A发送图像序列数据时,编码端可以选择神经网络集合1。在本申请的一种可能的实施方式中,在向解码端B发送图像序列数据时,编码端可以选择神经网络集合2或者神经网络集合3,对此选择方式不做限制。In a possible implementation manner of the present application, if the encoding end configures the neural network set 1 for the decoding end A and configures the neural network set 2 and the neural network set 3 for the decoding end B, the image sequence is sent to the decoding end A. When data is available, the encoder can select the neural network set 1. In a possible implementation manner of the present application, when transmitting image sequence data to the decoding end B, the encoding end may select the neural network set 2 or the neural network set 3, and the selection manner is not limited.
步骤202,编码端从获取的该神经网络集合中选择一个神经网络。Step 202: The encoding end selects a neural network from the acquired set of neural networks.
步骤202的处理过程可以参见步骤101的处理,在此不再赘述。For the processing of step 202, refer to the processing of step 101, and details are not described herein again.
步骤203,编码端利用选择的神经网络对图像序列数据进行编码,得到编码图像序列数据。步骤203的处理过程可以参见步骤102的处理,在此不再赘述。Step 203: The encoding end encodes the image sequence data by using the selected neural network to obtain encoded image sequence data. For the process of step 203, refer to the process of step 102, and details are not described herein again.
步骤204,编码端向解码端发送编码比特流,该编码比特流携带编码图像序列数据。Step 204: The encoding end sends an encoded bit stream to the decoding end, where the encoded bit stream carries the encoded image sequence data.
参见步骤103,在编码端向解码端发送编码比特流时,若采用显示策略,则编码比特流可以携带选择的神经网络在神经网络集合中的索引值,若采用隐式策略,则编码比特流未携带选择的神经网络在神经网络集合中的索引值。Referring to step 103, when the encoding end sends the encoded bit stream to the decoding end, if the display strategy is adopted, the encoded bit stream may carry the index value of the selected neural network in the neural network set, and if an implicit strategy is adopted, the encoded bit stream is used. The index value of the selected neural network in the set of neural networks is not carried.
除了神经网络的索引值之外,编码端在从多个神经网络集合中获取神经网络集合后,还可以确定该神经网络集合的标识,例如,神经网络集合1的标识可以为1,以此类推。In addition to the index value of the neural network, after obtaining the neural network set from the plurality of neural network sets, the encoding end may also determine the identifier of the neural network set, for example, the identifier of the neural network set 1 may be 1, and so on. .
然后,若采用显式策略向解码端发送编码比特流,则编码端可以在编码比特流中添加该神经网络集合的标识。编码端在编码比特流中添加该神经网络集合的标识时,还可以对该标识进行编码,并在编码比特流中添加编码后的标识。因此,在编码端向解码端发送编码比特流时,编码比特流可以携带选择的神经网络在神经网络集合中的索引值以及神经网络集合的标识。Then, if an explicit bit strategy is used to send the encoded bit stream to the decoding end, the encoding end may add the identifier of the neural network set to the encoded bit stream. When the encoding end adds the identifier of the neural network set to the encoded bit stream, the encoding may also encode the identifier, and add the encoded identifier to the encoded bit stream. Therefore, when the encoding end transmits the encoded bit stream to the decoding end, the encoded bit stream can carry the index value of the selected neural network in the neural network set and the identifier of the neural network set.
在本申请的一种可能的实施方式中,还可以在编码端和解码端配置神经网络集合决策策略,该神经网络集合决策策略可以为使用默认标识,如默认标识为1。基于此,若神经网络集合的标识为1,则采用隐式策略向解码端发送编码比特流,例如编码比特流 不携带标识1;若神经网络集合的标识为2,则采用显式策略向解码端发送编码比特流,例如编码比特流携带标识2。或者,该神经网络集合决策策略可以为使用上次标识,例如编码端上次向解码端发送的编码比特流对应的标识,如上次标识为1。基于此,若神经网络集合的标识为1,则采用隐式策略向解码端发送编码比特流,例如编码比特流不携带标识1;若神经网络集合的标识为2,则采用显式策略向解码端发送编码比特流,例如编码比特流携带标识2。使用默认标识和使用上次标识只是神经网络集合决策策略的示例,对此不做限制,只要利用神经网络集合决策策略能够确定神经网络集合的标识即可。In a possible implementation manner of the present application, a neural network set decision policy may also be configured on the encoding end and the decoding end, and the neural network set decision policy may use a default identifier, such as a default identifier of 1. Based on this, if the identifier of the neural network set is 1, the encrypted bit stream is sent to the decoding end by using an implicit policy, for example, the encoded bit stream does not carry the identifier 1; if the identifier of the neural network set is 2, the explicit strategy is used to decode The end transmits an encoded bit stream, for example, the encoded bit stream carries the identifier 2. Alternatively, the neural network set decision strategy may be to use the last identifier, for example, the identifier corresponding to the encoded bit stream that the encoding end sent to the decoding end last time, which is identified as 1 by the above. Based on this, if the identifier of the neural network set is 1, the encrypted bit stream is sent to the decoding end by using an implicit policy, for example, the encoded bit stream does not carry the identifier 1; if the identifier of the neural network set is 2, the explicit strategy is used to decode The end transmits an encoded bit stream, for example, the encoded bit stream carries the identifier 2. The use of the default identity and the use of the last identity is only an example of a neural network set decision strategy, which is not limited, as long as the neural network set decision strategy can be used to determine the identity of the neural network set.
编码端对神经网络集合的标识进行编码,在编码比特流中添加编码后的标识时,可以采用可变长度编码策略编码神经网络集合的标识,并在编码比特流中添加编码后的神经网络集合的标识;或者,可以采用定长编码策略编码神经网络集合的标识,并在编码比特流中添加编码后的神经网络集合的标识。The encoding end encodes the identifier of the neural network set, and when the encoded identifier is added to the encoded bit stream, the variable length coding strategy may be used to encode the identifier of the neural network set, and the encoded neural network set is added to the encoded bit stream. Or the identifier of the neural network set may be encoded by a fixed length coding strategy, and the identifier of the encoded neural network set is added to the encoded bit stream.
由以上技术方案可见,本申请实施例中,编码端可以从多个神经网络集合中选择一个神经网络集合,并从该神经网络集合的多个神经网络中选择一个神经网络,并使用该神经网络对图像序列数据进行编码,而不是使用固定的神经网络对图像序列数据进行编码,从而可以使编码性能较高,提高用户使用感受。As can be seen from the foregoing technical solutions, in the embodiment of the present application, the encoding end may select one neural network set from multiple neural network sets, and select one neural network from multiple neural networks of the neural network set, and use the neural network. The image sequence data is encoded instead of using a fixed neural network to encode the image sequence data, so that the coding performance is higher and the user experience is improved.
实施例三Embodiment 3
参见图3所示,为图像解码方法的一个流程示意图,该方法可以包括如下步骤。Referring to FIG. 3, which is a schematic flowchart of an image decoding method, the method may include the following steps.
步骤301,解码端获取编码比特流,该编码比特流携带编码图像序列数据。Step 301: The decoding end acquires an encoded bit stream, where the encoded bit stream carries encoded image sequence data.
编码比特流可以是编码端发送给解码端的,也可以是解码端在本地对图像序列数据进行编码后得到的,对此不做限制,后续以编码端将编码比特流发送给解码端为例进行说明。发送过程可以参见实施例一或者实施例二。The encoded bit stream may be sent by the encoding end to the decoding end, or may be obtained after the decoding end encodes the image sequence data locally. This is not limited, and the encoding end sends the encoded bit stream to the decoding end as an example. Description. For the sending process, refer to the first embodiment or the second embodiment.
步骤302,解码端获取神经网络决策信息,并从神经网络集合中选择与该神经网络决策信息对应的神经网络;其中,神经网络集合包括至少一个神经网络。Step 302: The decoding end acquires neural network decision information, and selects a neural network corresponding to the neural network decision information from the neural network set; wherein the neural network set includes at least one neural network.
在该神经网络集合内的神经网络,可以包括但不限于:卷积神经网络、循环神经网络、全连接网络等。Neural networks within the set of neural networks may include, but are not limited to, convolutional neural networks, recurrent neural networks, fully connected networks, and the like.
在步骤301之前,解码端可以建立一个神经网络集合,如该神经网络集合可以包括神经网络1、神经网络2和神经网络3,该神经网络集合与编码端的神经网络集合可以相同。在步骤302中,解码端可以从神经网络集合的神经网络1、神经网络2和神经网 络3中选择一个神经网络,例如,选择神经网络1。Before step 301, the decoder may establish a set of neural networks, such as the set of neural networks may include a neural network 1, a neural network 2, and a neural network 3, which may be the same as the set of neural networks at the encoding end. In step 302, the decoding side may select a neural network from the neural network 1, the neural network 2, and the neural network 3 of the neural network set, for example, the neural network 1.
解码端获取神经网络决策信息,并从神经网络集合中选择与该神经网络决策信息对应的神经网络,可以包括:若编码比特流携带神经网络的索引值,则解码端将该索引值确定为神经网络决策信息,并从神经网络集合中选择与该索引值对应的神经网络。或者,解码端根据神经网络决策策略确定神经网络的索引值,并将该索引值确定为神经网络决策信息,并从神经网络集合中选择与该索引值对应的神经网络。作为一种示例,解码端根据神经网络决策策略确定神经网络的索引值,可以包括:若神经网络决策策略为使用默认索引值,则可以将该默认索引值确定为神经网络的索引值;或者,若神经网络决策策略为使用上次索引值,则可以将上次使用的索引值确定为神经网络的索引值。The decoding end acquires the neural network decision information, and selects the neural network corresponding to the neural network decision information from the neural network set, and may include: if the encoded bit stream carries the index value of the neural network, the decoding end determines the index value as the neural network The network decides information and selects a neural network corresponding to the index value from the set of neural networks. Alternatively, the decoding end determines the index value of the neural network according to the neural network decision strategy, and determines the index value as the neural network decision information, and selects a neural network corresponding to the index value from the neural network set. As an example, the decoding end determines the index value of the neural network according to the neural network decision policy, and may include: if the neural network decision policy uses the default index value, the default index value may be determined as an index value of the neural network; or If the neural network decision strategy uses the last index value, the last used index value can be determined as the index value of the neural network.
例如,若编码端采用显式策略向解码端发送编码比特流,编码比特流中携带神经网络的索引值,例如神经网络在神经网络集合中的索引值,若神经网络的索引值为1,则解码端可以从神经网络集合中选择第一个神经网络。For example, if the encoding end uses an explicit strategy to send an encoded bit stream to the decoding end, the encoded bit stream carries an index value of the neural network, such as an index value of the neural network in the neural network set, and if the index value of the neural network is 1, The decoder can select the first neural network from the set of neural networks.
又例如,可以在编码端和解码端配置相同的神经网络决策策略。该神经网络决策策略可以为使用默认索引值,且该默认索引值可以为1。基于此,若编码端采用隐式策略向解码端发送编码比特流,例如编码比特流中未携带神经网络的索引值,且解码端可以将默认索引值1确定为神经网络的索引值,并可以从神经网络集合中选择第一个神经网络。或者,该神经网络决策策略可以为使用上次索引值。基于此,若编码端采用隐式策略向解码端发送编码比特流,编码比特流中未携带神经网络的索引值,且解码端可以将上次接收的编码比特流对应的索引值,如索引值1,确定为神经网络的索引值,并从神经网络集合中选择第一个神经网络。作为一种示例,上次接收的编码比特流可以是编码端采用显式策略发送的编码比特流或采用隐式策略发送的编码比特流。使用默认索引值和使用上次索引值只是神经网络决策策略的示例,对此不做限制,解码端能够利用神经网络决策策略确定神经网络在神经网络集合中的索引值即可。As another example, the same neural network decision strategy can be configured on both the encoding side and the decoding side. The neural network decision strategy can use a default index value, and the default index value can be 1. Based on this, if the encoding end uses an implicit strategy to send the encoded bit stream to the decoding end, for example, the index value of the encoded bit stream does not carry the neural network, and the decoding end can determine the default index value 1 as the index value of the neural network, and can The first neural network is selected from the set of neural networks. Alternatively, the neural network decision strategy can be to use the last index value. Based on this, if the encoding end uses an implicit strategy to send an encoded bit stream to the decoding end, the encoded bit stream does not carry the index value of the neural network, and the decoding end can use the index value corresponding to the last received encoded bit stream, such as an index value. 1. Determine the index value of the neural network and select the first neural network from the neural network set. As an example, the last received encoded bitstream may be an encoded bitstream that is transmitted by the encoding end using an explicit policy or an encoded bitstream that is transmitted using an implicit policy. The use of the default index value and the use of the last index value are only examples of neural network decision strategies. Without limitation, the decoder can use the neural network decision strategy to determine the index value of the neural network in the neural network set.
作为一种示例,在编码比特流携带神经网络的索引值时,该索引值可以是采用可变长度编码策略编码的索引值,因此,解码端获取编码比特流后,还可以采用可变长度解码策略,例如可变长度编码策略对应的解码策略,对编码比特流进行解码,得到神经网络的索引值。或者,该索引值可以是采用定长编码策略编码的索引值,因此,解码端获取编码比特流之后,还可以采用定长解码策略,例如定长编码策略对应的解码策略,对编码比特流进行解码,得到神经网络的索引值。As an example, when the encoded bit stream carries the index value of the neural network, the index value may be an index value encoded by a variable length coding strategy. Therefore, after the decoding end obtains the encoded bit stream, variable length decoding may also be used. A strategy, such as a decoding strategy corresponding to a variable length coding strategy, decodes the encoded bitstream to obtain an index value of the neural network. Alternatively, the index value may be an index value encoded by a fixed length coding strategy. Therefore, after obtaining the coded bit stream, the decoding end may also adopt a fixed length decoding strategy, such as a decoding strategy corresponding to the fixed length coding strategy, to perform the coded bit stream. Decode to get the index value of the neural network.
在步骤302中,可以预先配置神经网络集合中的每个神经网络的初始顺序,对此不 做限制。例如,初始顺序是神经网络1、神经网络2和神经网络3,且编码端的神经网络集合的初始顺序也是神经网络1、神经网络2和神经网络3。In step 302, the initial order of each neural network in the set of neural networks may be pre-configured, without limitation. For example, the initial sequence is Neural Network 1, Neural Network 2, and Neural Network 3, and the initial sequence of neural network sets at the encoding end is also Neural Network 1, Neural Network 2, and Neural Network 3.
在后续处理过程中,神经网络集合中的每个神经网络的顺序可以固定,例如顺序不发生变化。或者,神经网络集合中的每个神经网络的顺序也可以发生变化。例如,可以按照实际使用频率从大到小的顺序进行排序,例如第一个神经网络为使用频率最高的神经网络,最后一个神经网络为使用频率最低的神经网络;或者,按照实际使用频率从小到大的顺序进行排序,例如第一个神经网络为使用频率最低的神经网络,最后一个神经网络为使用频率最高的神经网络。In subsequent processing, the order of each neural network in the set of neural networks may be fixed, for example, the order does not change. Alternatively, the order of each neural network in the set of neural networks may also vary. For example, the order can be sorted according to the actual frequency of use, for example, the first neural network is the most frequently used neural network, and the last neural network is the neural network with the lowest frequency of use; or, according to the actual frequency of use, from small to The order is sorted by a large order, for example, the first neural network is the lowest frequency neural network, and the last neural network is the most frequently used neural network.
若编码端的神经网络的顺序采用固定方式,则解码端的神经网络的顺序也采用固定方式,且编码端的顺序与解码端的顺序一致。或者,若编码端的神经网络按照实际使用频率从大到小的顺序进行排序,则解码端的神经网络也按照实际使用频率从大到小的顺序进行排序。或者,若编码端的神经网络按照实际使用频率从小到大的顺序进行排序,则解码端的神经网络也按照实际使用频率从小到大的顺序进行排序。If the order of the neural network at the encoding end is fixed, the order of the neural network at the decoding end is also fixed, and the order of the encoding end is consistent with the order of the decoding end. Alternatively, if the neural networks at the encoding end are sorted in descending order of the actual frequency of use, the neural networks at the decoding end are also sorted in descending order of the actual frequency of use. Alternatively, if the neural networks at the encoding end are sorted in order of actual use frequency, the neural networks at the decoding end are also sorted in order of actual use frequency from small to large.
步骤303,解码端利用选择的神经网络对编码图像序列数据进行解码。In step 303, the decoding end decodes the encoded image sequence data by using the selected neural network.
作为一种示例,解码端利用选择的神经网络对编码图像序列数据进行解码,可以包括:可以利用选择的神经网络对图像序列进行解码;或者,可以利用选择的神经网络对图像进行解码;或者,可以利用选择的神经网络对图像块进行解码。As an example, the decoding end decoding the encoded image sequence data by using the selected neural network may include: the image sequence may be decoded by using the selected neural network; or the image may be decoded by using the selected neural network; or The image block can be decoded using the selected neural network.
例如,假设图像序列A包括图像A1和图像A2,图像A1包括图像块A11和图像块A12,图像A2包括图像块A21和图像块A22。For example, assume that image sequence A includes image A1 and image A2, image A1 includes image block A11 and image block A12, and image A2 includes image block A21 and image block A22.
若供选择的神经网络适用于图像序列,则可以为图像序列A选择一个神经网络,如选择神经网络1,则使用神经网络1对整个图像序列A对应的编码图像序列数据进行解码。If the alternative neural network is suitable for the image sequence, a neural network may be selected for the image sequence A. If the neural network 1 is selected, the encoded image sequence data corresponding to the entire image sequence A is decoded using the neural network 1.
若供选择的神经网络适用于整个图像,则可以为图像A1选择一个神经网络,若选择神经网络1,则可以使用神经网络1对图像A1对应的编码图像序列数据进行解码。还可以为图像A2选择一个神经网络,若选择神经网络2,则可以使用神经网络2对图像A2对应的编码图像序列数据进行解码。If the alternative neural network is suitable for the entire image, a neural network may be selected for the image A1, and if the neural network 1 is selected, the encoded image sequence data corresponding to the image A1 may be decoded using the neural network 1. It is also possible to select a neural network for the image A2. If the neural network 2 is selected, the encoded image sequence data corresponding to the image A2 can be decoded using the neural network 2.
若供选择的神经网络只适用于图像块,则可以为图像块A11选择一个神经网络,若选择神经网络1,则可以使用神经网络1对图像块A11对应的编码图像序列数据进行解码。可以为图像块A12选择一个神经网络,若选择神经网络2,则可以使用神经网络2 对图像块A12对应的编码图像序列数据进行解码。还可以为图像块A21选择一个神经网络,若选择神经网络3,则可以使用神经网络3对图像块A21对应的编码图像序列数据进行解码。可以为图像块A22选择一个神经网络,若选择神经网络2,则可以使用神经网络2对图像块A22对应的编码图像序列数据进行解码。If the alternative neural network is only applicable to the image block, a neural network may be selected for the image block A11. If the neural network 1 is selected, the encoded image sequence data corresponding to the image block A11 may be decoded using the neural network 1. A neural network may be selected for the image block A12. If the neural network 2 is selected, the encoded image sequence data corresponding to the image block A12 may be decoded using the neural network 2. It is also possible to select a neural network for the image block A21, and if the neural network 3 is selected, the encoded image sequence data corresponding to the image block A21 can be decoded using the neural network 3. A neural network may be selected for the image block A22. If the neural network 2 is selected, the encoded image sequence data corresponding to the image block A22 may be decoded using the neural network 2.
综上所述,解码端可以从神经网络集合中选择一个神经网络,并使用该神经网络对编码图像序列数据进行解码,而不是使用固定的神经网络对编码图像序列数据进行解码,从而使解码性能较高。解码端使用的神经网络与编码端使用的神经网络相同,从而可以对编码图像序列数据进行正确的解码。In summary, the decoding end can select a neural network from the neural network set and use the neural network to decode the encoded image sequence data instead of using a fixed neural network to decode the encoded image sequence data, thereby enabling decoding performance. Higher. The neural network used by the decoding end is the same as the neural network used by the encoding end, so that the encoded image sequence data can be correctly decoded.
实施例四Embodiment 4
参见图4所示,为图像解码方法的另一个流程示意图,该方法可以包括如下步骤。Referring to FIG. 4, another flow diagram of the image decoding method may include the following steps.
步骤401,解码端获取编码比特流,该编码比特流携带编码图像序列数据。Step 401: The decoding end acquires an encoded bitstream, where the encoded bitstream carries encoded image sequence data.
步骤401的处理过程可以参见步骤301的处理,在此不再赘述。For the processing of the step 401, refer to the processing of step 301, and details are not described herein again.
步骤402,解码端获取神经网络集合决策信息,并确定与该神经网络集合决策信息对应的神经网络集合。Step 402: The decoding end acquires neural network set decision information, and determines a neural network set corresponding to the neural network set decision information.
解码端可以配置至少一个神经网络集合,每个神经网络集合包括至少一个神经网络;例如,解码端配置神经网络集合1和神经网络集合2,且解码端可以从神经网络集合1和神经网络集合2中选择一个神经网络集合。The decoding end may configure at least one neural network set, each neural network set includes at least one neural network; for example, the decoding end configures the neural network set 1 and the neural network set 2, and the decoding end may be from the neural network set 1 and the neural network set 2 Select a neural network collection.
作为一种示例,解码端获取神经网络集合决策信息,并确定与该神经网络集合决策信息对应的神经网络集合,可以包括但不限于以下方法。若编码比特流携带神经网络集合的标识,则解码端可以将该标识确定为神经网络集合决策信息,并确定与该标识对应的神经网络集合。或者,解码端根据神经网络集合决策策略确定神经网络集合的标识,并将该标识确定为神经网络集合决策信息,并确定与该标识对应的神经网络集合。进一步,解码端根据神经网络集合决策策略确定神经网络集合的标识,可以包括但不限于:若该神经网络集合决策策略为使用默认标识,则解码端将该默认标识确定为神经网络集合的标识;或者,若该神经网络集合决策策略为使用上次标识,则解码端将上次使用的标识确定为神经网络集合的标识。As an example, the decoding end acquires the neural network set decision information and determines the neural network set corresponding to the neural network set decision information, which may include, but is not limited to, the following methods. If the encoded bitstream carries an identifier of the set of neural networks, the decoding end may determine the identifier as neural network set decision information and determine a neural network set corresponding to the identifier. Alternatively, the decoding end determines the identifier of the neural network set according to the neural network set decision strategy, and determines the identifier as the neural network set decision information, and determines the neural network set corresponding to the identifier. Further, the decoding end determines the identifier of the neural network set according to the neural network set decision strategy, and may include, but is not limited to: if the neural network set decision policy uses the default identifier, the decoding end determines the default identifier as the identifier of the neural network set; Alternatively, if the neural network set decision policy is to use the last identifier, the decoder determines the last used identifier as the identifier of the neural network set.
例如,若编码端采用显式策略向解码端发送编码比特流,则编码比特流中还携带神经网络集合的标识,如标识1,解码端可以从所有神经网络集合中选择神经网络集合1。又例如,在编码端和解码端配置神经网络集合决策策略,神经网络集合决策策略 可以为使用默认标识,且默认标识可以为1。若编码端采用隐式策略向解码端发送编码比特流,则编码比特流未携带神经网络集合的标识,解码端将默认标识1确定为神经网络集合的标识,并从所有神经网络集合中选择神经网络集合1。又例如,神经网络集合决策策略可以为使用上次标识,若编码端采用隐式策略向解码端发送编码比特流,则编码比特流中未携带神经网络集合的标识,解码端将上次接收的编码比特流对应的标识,如标识1,确定为神经网络集合的标识,并从所有神经网络集合中选择神经网络集合1。使用默认标识和使用上次标识只是神经网络集合决策策略的示例,对此神经网络集合决策策略不做限制,只要解码端能够利用神经网络集合决策策略确定神经网络集合的标识即可。For example, if the encoding end sends an encoded bit stream to the decoding end by using an explicit strategy, the encoded bit stream also carries an identifier of the neural network set, such as the identifier 1, and the decoding end can select the neural network set 1 from all the neural network sets. For another example, a neural network set decision strategy is configured on the encoding end and the decoding end. The neural network set decision strategy may use a default identifier, and the default identifier may be 1. If the encoding end sends the encoded bit stream to the decoding end by using an implicit strategy, the encoded bit stream does not carry the identifier of the neural network set, and the decoding end determines the default identifier 1 as the identifier of the neural network set, and selects the neural network from all the neural network sets. Network collection 1. For another example, the neural network set decision strategy may use the last identifier. If the encoding end sends the encoded bit stream to the decoding end by using the implicit policy, the encoded bit stream does not carry the identifier of the neural network set, and the decoding end will receive the last received The identifier corresponding to the encoded bit stream, such as the identifier 1, is identified as the identifier of the set of neural networks, and the set of neural networks 1 is selected from all sets of neural networks. The use of the default identity and the use of the last identity is only an example of a neural network set decision strategy. The neural network set decision strategy is not limited as long as the decoder can determine the identity of the neural network set using the neural network set decision strategy.
作为一种示例,在编码比特流携带神经网络集合的标识时,该标识可以是采用可变长度编码策略编码的标识,因此,解码端获取编码比特流之后,还可以采用可变长度解码策略,例如可变长度编码策略对应的解码策略,对编码比特流进行解码,得到神经网络集合的标识。或者,该标识可以是采用定长编码策略编码的标识,因此,解码端获取编码比特流之后,还可以采用定长解码策略,例如定长编码策略对应的解码策略,对编码比特流进行解码,得到神经网络集合的标识。As an example, when the encoded bitstream carries the identifier of the neural network set, the identifier may be an identifier encoded by the variable length coding strategy. Therefore, after the decoder obtains the encoded bitstream, the variable length decoding strategy may also be adopted. For example, a decoding strategy corresponding to the variable length coding strategy decodes the encoded bit stream to obtain an identifier of the neural network set. Alternatively, the identifier may be an identifier encoded by a fixed length coding strategy. Therefore, after obtaining the coded bit stream, the decoding end may also use a fixed length decoding strategy, such as a decoding strategy corresponding to the fixed length coding strategy, to decode the encoded bit stream. Get the identity of the neural network collection.
步骤403,解码端获取神经网络决策信息,并从该神经网络集合中选择与该神经网络决策信息对应的神经网络;该神经网络集合包括至少一个神经网络。Step 403: The decoding end acquires neural network decision information, and selects a neural network corresponding to the neural network decision information from the neural network set; the neural network set includes at least one neural network.
步骤403的处理过程可以参见步骤302的处理,在此不再赘述。For the process of step 403, refer to the process of step 302, and details are not described herein again.
步骤404,解码端利用选择的神经网络对编码图像序列数据进行解码。In step 404, the decoding end decodes the encoded image sequence data by using the selected neural network.
步骤404的处理过程可以参见步骤303的处理,在此不再赘述。For the processing of the step 404, refer to the processing of step 303, and details are not described herein again.
综上所述,解码端可以从至少一个神经网络集合中选择一个神经网络集合,并从该神经网络集合的多个神经网络中选择一个神经网络,并使用该神经网络对编码图像序列数据进行解码,而不是使用固定的神经网络对编码图像序列数据进行解码,从而使解码性能较高,提高用户使用感受。解码端使用的神经网络与编码端使用的神经网络相同,从而对编码图像序列数据进行正确的解码。In summary, the decoding end may select a neural network set from at least one neural network set, and select one neural network from the plurality of neural networks of the neural network set, and use the neural network to decode the encoded image sequence data. Instead of using a fixed neural network to decode the encoded image sequence data, the decoding performance is higher and the user experience is improved. The neural network used by the decoding end is the same as the neural network used by the encoding end, so that the encoded image sequence data is correctly decoded.
基于与上述方法同样的申请构思,本申请实施例中还提出一种图像解码装置,应用于解码端,如图5所示,为所述装置的结构图,所述装置具体包括:Based on the same application concept as the above method, an image decoding apparatus is also provided in the embodiment of the present application, which is applied to the decoding end, as shown in FIG. 5, which is a structural diagram of the apparatus, and the apparatus specifically includes:
获取模块501,用于获取编码比特流,编码比特流携带编码图像序列数据;An obtaining module 501, configured to acquire an encoded bitstream, where the encoded bitstream carries encoded image sequence data;
选择模块502,用于获取神经网络决策信息,并从神经网络集合中选择与所述神 经网络决策信息对应的神经网络;The selecting module 502 is configured to acquire neural network decision information, and select a neural network corresponding to the neural network decision information from the neural network set;
解码模块503,用于利用选择的神经网络对所述编码图像序列数据进行解码。The decoding module 503 is configured to decode the encoded image sequence data by using the selected neural network.
在本申请的一种可能的实施方式中,所述选择模块502,还用于:若所述编码比特流携带神经网络的索引值,则将所述索引值确定为所述神经网络决策信息;或者,根据神经网络决策策略确定神经网络的索引值,并将所述索引值确定为所述神经网络决策信息;所述选择模块502在根据所述神经网络决策策略确定所述神经网络的索引值时具体用于:若所述神经网络决策策略为使用默认索引值,则将所述默认索引值确定为神经网络的索引值;或者,若所述神经网络决策策略为使用上次索引值,则将上次使用的索引值确定为神经网络的索引值。In a possible implementation manner of the present application, the selecting module 502 is further configured to: if the encoded bitstream carries an index value of a neural network, determine the index value as the neural network decision information; Or determining an index value of the neural network according to a neural network decision policy, and determining the index value as the neural network decision information; the selecting module 502 determining an index value of the neural network according to the neural network decision policy Specifically, if the neural network decision policy is to use a default index value, determining the default index value as an index value of the neural network; or, if the neural network decision policy is using the last index value, The last used index value is determined as the index value of the neural network.
在本申请的一种可能的实施方式中,所述选择模块502,还用于获取神经网络集合决策信息,并确定与所述神经网络集合决策信息对应的神经网络集合;所述选择模块502获取神经网络集合决策信息具体用于:若编码比特流携带神经网络集合的标识,将所述标识确定为神经网络集合决策信息;或者,根据神经网络集合决策策略确定神经网络集合的标识,并将所述标识确定为神经网络集合决策信息。In a possible implementation manner of the present application, the selecting module 502 is further configured to acquire neural network set decision information, and determine a neural network set corresponding to the neural network set decision information; the selecting module 502 obtains The neural network set decision information is specifically used to: if the encoded bit stream carries the identifier of the neural network set, determine the identifier as the neural network set decision information; or determine the identifier of the neural network set according to the neural network set decision strategy, and The identification is determined as neural network set decision information.
在本申请的一种可能的实施方式中,所述选择模块502获取所述编码比特流携带的神经网络集合的标识,包括:在所述标识是采用可变长度编码策略编码的标识的情况下,采用可变长度解码策略对所述编码比特流进行解码,得到所述神经网络集合的标识,其中,所述可变长度解码策略对应所述可变长度编码策略。In a possible implementation manner of the present application, the selecting module 502 acquires an identifier of a neural network set carried by the encoded bitstream, including: if the identifier is an identifier encoded by a variable length coding strategy, Decoding the encoded bitstream with a variable length decoding strategy to obtain an identifier of the neural network set, wherein the variable length decoding policy corresponds to the variable length coding strategy.
在本申请的一种可能的实施方式中,所述神经网络集合包括的至少一个神经网络,按照实际使用频率从大到小的顺序进行排序,或者,按照实际使用频率从小到大的顺序进行排序。In a possible implementation manner of the present application, the neural network set includes at least one neural network, which is sorted according to an actual use frequency in descending order, or is sorted according to an actual use frequency from small to large. .
基于与上述方法同样的申请构思,本申请实施例还提出一种图像编码装置,应用于编码端,如图6所示,为所述装置的结构图,所述装置包括:选择模块601,用于从神经网络集合中选择神经网络;编码模块602,用于利用选择的所述神经网络对图像序列数据进行编码,得到编码图像序列数据;发送模块603,用于向解码端发送编码比特流,所述编码比特流携带所述编码图像序列数据。Based on the same application concept as the above method, the embodiment of the present application further provides an image encoding apparatus, which is applied to an encoding end, as shown in FIG. 6 , which is a structural diagram of the apparatus, and the apparatus includes: a selecting module 601, Selecting a neural network from the set of neural networks; encoding module 602, configured to encode the image sequence data by using the selected neural network to obtain encoded image sequence data; and sending module 603, configured to send the encoded bit stream to the decoding end, The encoded bitstream carries the encoded image sequence data.
在本申请的一种可能的实施方式中,所述选择模块601还用于:根据所述神经网络集合中每个神经网络的性能参数,从所述神经网络集合中选择神经网络;In a possible implementation manner of the present application, the selecting module 601 is further configured to: select a neural network from the neural network set according to a performance parameter of each neural network in the neural network set;
在本申请的一种可能的实施方式中,所述选择模块601根据所述神经网络集合 中每个神经网络的性能参数,从所述神经网络集合中选择神经网络时具体用于:根据所述编码端的运算能力、所述神经网络集合中每个神经网络的运算复杂度,从所述神经网络集合中选择神经网络;或者,获取所述神经网络集合中每个神经网络的编码性能,从所述神经网络集合中选择编码性能最优的神经网络作为所述神经网络。In a possible implementation manner of the present application, the selecting module 601, when selecting a neural network from the neural network set according to a performance parameter of each neural network in the neural network set, is specifically used according to: The computing capability of the encoding end, the computational complexity of each neural network in the set of neural networks, selecting a neural network from the set of neural networks; or acquiring the coding performance of each neural network in the neural network set, A neural network with optimal coding performance is selected as the neural network in the set of neural networks.
在本申请的一种可能的实施方式中,所述发送模块603还用于:在所述编码比特流中添加选择的神经网络在所述神经网络集合中的索引值。In a possible implementation manner of the present application, the sending module 603 is further configured to: add, in the encoded bitstream, an index value of the selected neural network in the neural network set.
在本申请的一种可能的实施方式中,所述发送模块603在所述编码比特流中添加选择的神经网络在所述神经网络集合中的索引值,包括:采用可变长度编码策略编码所述索引值,并在所述编码比特流中添加编码后的所述索引值。In a possible implementation manner of the present application, the sending module 603 adds, in the encoded bitstream, an index value of the selected neural network in the neural network set, including: using a variable length coding strategy coding The index value is described, and the encoded index value is added to the encoded bit stream.
在本申请的一种可能的实施方式中,所述发送模块603还用于:在所述编码比特流中添加神经网络集合的标识。In a possible implementation manner of the application, the sending module 603 is further configured to: add an identifier of the neural network set in the encoded bit stream.
在本申请的一种可能的实施方式中,所述发送模块603在所述编码比特流中添加神经网络集合的标识,包括:采用可变长度编码策略编码所述标识,并在所述编码比特流中添加编码后的标识。In a possible implementation manner of the present application, the sending module 603 adds an identifier of the neural network set in the encoded bitstream, including: encoding the identifier by using a variable length coding strategy, and in the coding bit Add the encoded identifier to the stream.
在本申请的一种可能的实施方式中,所述神经网络集合包括的至少一个神经网络,按照实际使用频率从大到小的顺序进行排序,或者,按照实际使用频率从小到大的顺序进行排序。In a possible implementation manner of the present application, the neural network set includes at least one neural network, which is sorted according to an actual use frequency in descending order, or is sorted according to an actual use frequency from small to large. .
本申请实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图7。包括:处理器和机器可读存储介质,其中:所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请上述实施例三和实施例四公开的图像解码方法。For the decoding device provided by the embodiment of the present application, the hardware architecture of the device is specifically shown in FIG. 7 . The invention includes a processor and a machine readable storage medium, wherein: the machine readable storage medium stores machine executable instructions executable by the processor; the processor is operative to execute machine executable instructions to implement the present application The image decoding method disclosed in the third embodiment and the fourth embodiment above.
本申请实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图8。包括:处理器和机器可读存储介质,其中:所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请上述实施例一和实施例二公开的图像编码方法。For the coding end device provided by the embodiment of the present application, the hardware architecture of the device is specifically shown in FIG. 8 . The invention includes a processor and a machine readable storage medium, wherein: the machine readable storage medium stores machine executable instructions executable by the processor; the processor is operative to execute machine executable instructions to implement the present application The image encoding method disclosed in the first embodiment and the second embodiment.
上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等), 或者类似的存储介质,或者它们的组合。The machine-readable storage medium described above can be any electronic, magnetic, optical, or other physical storage device that can contain or store information such as executable instructions, data, and so forth. For example, the machine-readable storage medium may be: RAM (Radom Access Memory), volatile memory, non-volatile memory, flash memory, storage drive (such as a hard disk drive), solid state drive, any type of storage disk. (such as a disc, DVD, etc.), or a similar storage medium, or a combination thereof.
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。The system, device, module or unit illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product having a certain function. A typical implementation device is a computer, and the specific form of the computer may be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email transceiver, and a game control. A combination of a tablet, a tablet, a wearable device, or any of these devices.
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。For the convenience of description, the above devices are described separately by function into various units. The functions of the various units may be implemented in one or more software and/or hardware in the implementation of the application.
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。Those skilled in the art will appreciate that embodiments of the present application can be provided as a method, system, or computer program product. Thus, the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment in combination of software and hardware. Moreover, embodiments of the present application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (system), and computer program products according to embodiments of the present application. It will be understood that each flow and/or block of the flowchart illustrations and/or FIG. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine for the execution of instructions for execution by a processor of a computer or other programmable data processing device. Means for implementing the functions specified in one or more of the flow or in a block or blocks of the flow chart.
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。Moreover, these computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device. The instruction means implements the functions specified in one or more blocks of the flowchart or in a flow or block diagram of the flowchart.
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device. The instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人 员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。The above description is only an embodiment of the present application and is not intended to limit the application. Various changes and modifications can be made to the present application by those skilled in the art. Any modifications, equivalents, improvements, etc. made within the spirit and scope of the present application are intended to be included within the scope of the appended claims.

Claims (27)

  1. 一种图像解码方法,应用于解码端,所述方法包括:An image decoding method is applied to a decoding end, and the method includes:
    获取编码比特流,所述编码比特流携带编码图像序列数据;Obtaining an encoded bitstream, the encoded bitstream carrying encoded image sequence data;
    获取神经网络决策信息;Obtaining neural network decision information;
    从神经网络集合中选择与所述神经网络决策信息对应的神经网络;Selecting a neural network corresponding to the neural network decision information from a set of neural networks;
    利用选择的所述神经网络对所述编码图像序列数据进行解码。The encoded image sequence data is decoded using the selected neural network.
  2. 根据权利要求1所述的方法,其特征在于,获取所述神经网络决策信息,包括:The method according to claim 1, wherein the obtaining the neural network decision information comprises:
    获取所述编码比特流携带的神经网络的索引值,Obtaining an index value of a neural network carried by the encoded bit stream,
    将所述索引值确定为所述神经网络决策信息。The index value is determined as the neural network decision information.
  3. 根据权利要求2所述的方法,其特征在于,获取所述编码比特流携带的神经网络的索引值,包括:The method according to claim 2, wherein the obtaining an index value of the neural network carried by the encoded bit stream comprises:
    在所述索引值是采用可变长度编码策略编码的索引值的情况下,采用可变长度解码策略对所述编码比特流进行解码,得到所述神经网络的索引值,In the case that the index value is an index value encoded by a variable length coding strategy, the coded bit stream is decoded by using a variable length decoding strategy to obtain an index value of the neural network.
    其中,所述可变长度解码策略对应所述可变长度编码策略。The variable length decoding strategy corresponds to the variable length coding strategy.
  4. 根据权利要求1所述的方法,其特征在于,获取所述神经网络决策信息,包括:The method according to claim 1, wherein the obtaining the neural network decision information comprises:
    根据神经网络决策策略确定神经网络的索引值,并Determining the index value of the neural network according to the neural network decision strategy, and
    将所述索引值确定为所述神经网络决策信息。The index value is determined as the neural network decision information.
  5. 根据权利要求4所述的方法,其特征在于,根据所述神经网络决策策略确定所述神经网络的索引值,包括:The method according to claim 4, wherein determining the index value of the neural network according to the neural network decision policy comprises:
    若神经网络决策策略为使用默认索引值,将默认索引值确定为所述神经网络的索引值;或者,If the neural network decision strategy is to use a default index value, the default index value is determined as an index value of the neural network; or
    若神经网络决策策略为使用上次索引值,将所述上次索引值确定为所述神经网络的索引值。If the neural network decision strategy is to use the last index value, the last index value is determined as the index value of the neural network.
  6. 根据权利要求1所述的方法,其特征在于,从所述神经网络集合中选择与所述神经网络决策信息对应的所述神经网络之前,所述方法还包括:The method according to claim 1, wherein before the selecting the neural network corresponding to the neural network decision information from the set of neural networks, the method further comprises:
    获取神经网络集合决策信息,并Obtaining neural network set decision information, and
    确定与所述神经网络集合决策信息对应的神经网络集合。A set of neural networks corresponding to the neural network set decision information is determined.
  7. 根据权利要求6所述的方法,其特征在于,获取所述神经网络集合决策信息,包括:The method according to claim 6, wherein the obtaining the neural network set decision information comprises:
    获取所述编码比特流携带的神经网络集合的标识,Obtaining an identifier of a set of neural networks carried by the encoded bitstream,
    将所述标识确定为所述神经网络集合决策信息。The identification is determined as the neural network set decision information.
  8. 根据权利要求7所述的方法,其特征在于,获取所述编码比特流携带的神经网络集合的标识,包括:The method according to claim 7, wherein the obtaining the identifier of the set of neural networks carried by the encoded bit stream comprises:
    在所述标识是采用可变长度编码策略编码的标识的情况下,采用可变长度解码策略对所述编码比特流进行解码,得到所述神经网络集合的标识,In the case that the identifier is an identifier encoded by a variable length coding strategy, the encoded bit stream is decoded by using a variable length decoding strategy to obtain an identifier of the neural network set.
    其中,所述可变长度解码策略对应所述可变长度编码策略。The variable length decoding strategy corresponds to the variable length coding strategy.
  9. 根据权利要求6所述的方法,其特征在于,获取所述神经网络集合决策信息,包括:The method according to claim 6, wherein the obtaining the neural network set decision information comprises:
    根据神经网络集合决策策略确定神经网络集合的标识,并Determining the identity of the neural network set according to the neural network set decision strategy, and
    将所述标识确定为所述神经网络集合决策信息。The identification is determined as the neural network set decision information.
  10. 根据权利要求1所述的方法,其特征在于,The method of claim 1 wherein
    所述神经网络集合包括的至少一个神经网络,按照实际使用频率从大到小的顺序进行排序,或者,按照实际使用频率从小到大的顺序进行排序。The neural network set includes at least one neural network, sorted in order of actual use frequency from large to small, or sorted in order of actual use frequency from small to large.
  11. 一种图像编码方法,应用于编码端,所述方法包括:An image encoding method is applied to an encoding end, and the method includes:
    从神经网络集合选择神经网络;Selecting a neural network from a collection of neural networks;
    利用选择的所述神经网络对图像序列数据进行编码,得到编码图像序列数据;Encoding the image sequence data by using the selected neural network to obtain encoded image sequence data;
    向解码端发送编码比特流,所述编码比特流携带所述编码图像序列数据。An encoded bitstream is transmitted to the decoding end, the encoded bitstream carrying the encoded image sequence data.
  12. 根据权利要求11所述的方法,其特征在于,从所述神经网络集合选择所述神经网络,包括:The method of claim 11 wherein selecting the neural network from the set of neural networks comprises:
    根据所述神经网络集合中每个神经网络的性能参数,从所述神经网络集合中选择所述神经网络。The neural network is selected from the set of neural networks based on performance parameters of each neural network in the set of neural networks.
  13. 根据权利要求12所述的方法,其特征在于,根据所述神经网络集合中每个神经网络的性能参数,从所述神经网络集合中选择所述神经网络,包括:The method according to claim 12, wherein selecting the neural network from the set of neural networks according to performance parameters of each neural network in the set of neural networks comprises:
    根据所述编码端的运算能力、所述神经网络集合中每个神经网络的运算复杂度,从所述神经网络集合中选择所述神经网络;或者,Selecting the neural network from the set of neural networks according to the computing capability of the encoding end and the computational complexity of each neural network in the set of neural networks; or
    获取所述神经网络集合中每个神经网络的编码性能,从所述神经网络集合中选择编码性能最优的神经网络作为所述神经网络。Obtaining coding performance of each neural network in the set of neural networks, and selecting a neural network with optimal coding performance from the neural network set as the neural network.
  14. 根据权利要求11所述的方法,其特征在于,向所述解码端发送所述编码比特流,包括:The method according to claim 11, wherein the transmitting the encoded bit stream to the decoding end comprises:
    确定选择的所述神经网络在所述神经网络集合中的索引值;Determining an index value of the selected neural network in the set of neural networks;
    在所述编码比特流中添加所述索引值。The index value is added to the encoded bitstream.
  15. 根据权利要求14所述的方法,其特征在于,在所述编码比特流中添加所述索 引值,包括:The method of claim 14 wherein adding the index value to the encoded bitstream comprises:
    采用可变长度编码策略编码所述索引值,并Encoding the index value using a variable length coding strategy, and
    在所述编码比特流中添加编码后的所述索引值。The encoded index value is added to the encoded bitstream.
  16. 根据权利要求11所述的方法,其特征在于,向所述解码端发送所述编码比特流,包括:The method according to claim 11, wherein the transmitting the encoded bit stream to the decoding end comprises:
    获取神经网络集合,并确定所述神经网络集合的标识;Obtaining a set of neural networks and determining an identity of the set of neural networks;
    在所述编码比特流中添加所述标识。The identifier is added to the encoded bitstream.
  17. 根据权利要求16所述的方法,其特征在于,在所述编码比特流中添加所述标识,包括:The method of claim 16, wherein adding the identifier to the encoded bitstream comprises:
    采用可变长度编码策略编码所述标识,并Encoding the identifier using a variable length coding strategy, and
    在所述编码比特流中添加编码后的标识。An encoded identifier is added to the encoded bitstream.
  18. 根据权利要求11所述的方法,其特征在于,The method of claim 11 wherein
    所述神经网络集合包括的至少一个神经网络,按照实际使用频率从大到小的顺序进行排序,或者,按照实际使用频率从小到大的顺序进行排序。The neural network set includes at least one neural network, sorted in order of actual use frequency from large to small, or sorted in order of actual use frequency from small to large.
  19. 一种图像解码装置,应用于解码端,所述装置包括:An image decoding apparatus is applied to a decoding end, and the apparatus includes:
    获取模块,用于获取编码比特流,所述编码比特流携带编码图像序列数据;An obtaining module, configured to obtain an encoded bitstream, where the encoded bitstream carries encoded image sequence data;
    选择模块,用于获取神经网络决策信息,并从神经网络集合中选择与所述神经网络决策信息对应的神经网络;a selection module, configured to acquire neural network decision information, and select a neural network corresponding to the neural network decision information from the neural network set;
    解码模块,用于利用选择的所述神经网络对所述编码图像序列数据进行解码。And a decoding module, configured to decode the encoded image sequence data by using the selected neural network.
  20. 根据权利要求19所述的装置,其特征在于,所述选择模块,还用于:The device according to claim 19, wherein the selection module is further configured to:
    若所述编码比特流携带神经网络的索引值,则将所述索引值确定为所述神经网络决策信息;或者,根据神经网络决策策略确定神经网络的索引值,并将所述索引值确定为所述神经网络决策信息;And if the encoded bit stream carries an index value of the neural network, determining the index value as the neural network decision information; or determining an index value of the neural network according to the neural network decision policy, and determining the index value as The neural network decision information;
    所述选择模块在根据所述神经网络决策策略确定所述神经网络的所述索引值时具体用于:若所述神经网络决策策略为使用默认索引值,则将所述默认索引值确定为所述神经网络的所述索引值;或者,若所述神经网络决策策略为使用上次索引值,则将上次使用的索引值确定为所述神经网络的所述索引值。The determining module is specifically configured to determine, according to the neural network decision policy, the index value of the neural network: if the neural network decision policy is to use a default index value, determine the default index value as Said index value of the neural network; or, if the neural network decision strategy is to use the last index value, the last used index value is determined as the index value of the neural network.
  21. 根据权利要求19所述的装置,其特征在于,The device according to claim 19, characterized in that
    所述选择模块,还用于获取神经网络集合决策信息,并确定与所述神经网络集合决策信息对应的神经网络集合;The selection module is further configured to acquire neural network set decision information, and determine a neural network set corresponding to the neural network set decision information;
    所述选择模块获取所述神经网络集合决策信息具体用于:若所述编码比特流携带神 经网络集合的标识,将所述标识确定为所述神经网络集合决策信息;或者,根据神经网络集合决策策略确定神经网络集合的标识,并将所述标识确定为所述神经网络集合决策信息。The selecting module acquiring the neural network set decision information is specifically configured to: if the encoded bit stream carries an identifier of a neural network set, determine the identifier as the neural network set decision information; or, according to a neural network set decision The policy determines an identity of the set of neural networks and determines the identity as the neural network set decision information.
  22. 一种图像编码装置,应用于编码端,所述装置包括:An image encoding device is applied to an encoding end, the device comprising:
    选择模块,用于从神经网络集合中选择神经网络;a selection module for selecting a neural network from a set of neural networks;
    编码模块,用于利用选择的所述神经网络对图像序列数据进行编码,得到编码图像序列数据;An encoding module, configured to encode image sequence data by using the selected neural network to obtain encoded image sequence data;
    发送模块,用于向解码端发送编码比特流,所述编码比特流携带所述编码图像序列数据。And a sending module, configured to send, to the decoding end, an encoded bitstream, where the encoded bitstream carries the encoded image sequence data.
  23. 根据权利要求22所述的装置,其特征在于,The device according to claim 22, wherein
    所述选择模块还用于:根据所述神经网络集合中每个神经网络的性能参数,从所述神经网络集合中选择所述神经网络;The selecting module is further configured to: select the neural network from the set of neural networks according to performance parameters of each neural network in the neural network set;
    所述选择模块根据所述神经网络集合中每个神经网络的性能参数,从所述神经网络集合中选择所述神经网络时具体用于:根据所述编码端的运算能力、所述神经网络集合中每个神经网络的运算复杂度,从所述神经网络集合中选择所述神经网络;或者,获取所述神经网络集合中每个神经网络的编码性能,从所述神经网络集合中选择编码性能最优的神经网络作为所述神经网络。The selecting module is configured to select, according to the performance parameter of each neural network in the neural network set, the neural network from the set of neural networks: according to the computing capability of the encoding end, the neural network set The computational complexity of each neural network, selecting the neural network from the set of neural networks; or acquiring the coding performance of each neural network in the set of neural networks, selecting the coding performance from the set of neural networks An excellent neural network acts as the neural network.
  24. 根据权利要求22所述的装置,其特征在于,所述发送模块还用于:The device according to claim 22, wherein the sending module is further configured to:
    在所述编码比特流中添加选择的所述神经网络在所述神经网络集合中的索引值。An index value of the selected neural network in the set of neural networks is added to the encoded bitstream.
  25. 根据权利要求22所述的装置,其特征在于,所述发送模块还用于:The device according to claim 22, wherein the sending module is further configured to:
    在所述编码比特流中添加所述神经网络集合的标识。An identifier of the set of neural networks is added to the encoded bitstream.
  26. 一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-10任一所述的方法步骤。A decoding end device, comprising: a processor and a machine readable storage medium storing machine executable instructions executable by the processor; the processor for executing machine executable instructions, To carry out the method steps of any of claims 1-10.
  27. 一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求11-18任一所述的方法步骤。An encoding end device comprising: a processor and a machine readable storage medium storing machine executable instructions executable by the processor; the processor for executing machine executable instructions, To carry out the method steps of any of claims 11-18.
PCT/CN2019/079807 2018-04-25 2019-03-27 Image decoding and encoding methods and apparatuses, and device thereof WO2019205871A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810380105.2 2018-04-25
CN201810380105.2A CN110401836B (en) 2018-04-25 2018-04-25 Image decoding and encoding method, device and equipment

Publications (1)

Publication Number Publication Date
WO2019205871A1 true WO2019205871A1 (en) 2019-10-31

Family

ID=68294729

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/079807 WO2019205871A1 (en) 2018-04-25 2019-03-27 Image decoding and encoding methods and apparatuses, and device thereof

Country Status (2)

Country Link
CN (2) CN110401836B (en)
WO (1) WO2019205871A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021244884A1 (en) * 2020-06-04 2021-12-09 Interdigital Vc Holdings France, Sas Neural network based filter in video coding
FR3112661A1 (en) * 2020-07-17 2022-01-21 Fondation B-Com Data stream decoding methods, devices and related data streams

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114501031B (en) * 2020-11-13 2023-06-02 华为技术有限公司 Compression coding and decompression method and device
US11716469B2 (en) * 2020-12-10 2023-08-01 Lemon Inc. Model selection in neural network-based in-loop filter for video coding
CN115883831A (en) * 2021-08-05 2023-03-31 华为技术有限公司 Encoding and decoding method and device
CN117440185A (en) * 2022-07-14 2024-01-23 杭州海康威视数字技术股份有限公司 Image decoding and encoding method, device and equipment based on neural network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0395150A1 (en) * 1989-04-26 1990-10-31 Laboratoires D'electronique Philips Method and structure for data compression
CN107147603A (en) * 2017-05-05 2017-09-08 西安电子科技大学 DBPSK demodulation methods based on multiple neural network
CN107172428A (en) * 2017-06-06 2017-09-15 西安万像电子科技有限公司 The transmission method of image, device and system
CN107197260A (en) * 2017-06-12 2017-09-22 清华大学深圳研究生院 Video coding post-filter method based on convolutional neural networks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO332189B1 (en) * 2010-02-17 2012-07-23 Cisco Systems Int Sarl Video Encoding Procedure
CN102523452B (en) * 2011-12-29 2014-12-17 西安空间无线电技术研究所 Method for conversion, compression and transmission of images
KR20130090147A (en) * 2012-02-03 2013-08-13 안병익 Neural network computing apparatus and system, and method thereof
AU2013322008B2 (en) * 2012-09-26 2016-10-27 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
US10685279B2 (en) * 2016-09-26 2020-06-16 Splunk Inc. Automatically generating field extraction recommendations
CN107018422B (en) * 2017-04-27 2019-11-05 四川大学 Still image compression method based on depth convolutional neural networks
CN107396124B (en) * 2017-08-29 2019-09-20 南京大学 Video-frequency compression method based on deep neural network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0395150A1 (en) * 1989-04-26 1990-10-31 Laboratoires D'electronique Philips Method and structure for data compression
CN107147603A (en) * 2017-05-05 2017-09-08 西安电子科技大学 DBPSK demodulation methods based on multiple neural network
CN107172428A (en) * 2017-06-06 2017-09-15 西安万像电子科技有限公司 The transmission method of image, device and system
CN107197260A (en) * 2017-06-12 2017-09-22 清华大学深圳研究生院 Video coding post-filter method based on convolutional neural networks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021244884A1 (en) * 2020-06-04 2021-12-09 Interdigital Vc Holdings France, Sas Neural network based filter in video coding
FR3112661A1 (en) * 2020-07-17 2022-01-21 Fondation B-Com Data stream decoding methods, devices and related data streams
WO2022013249A3 (en) * 2020-07-17 2022-05-19 Fondation B-Com Video decoding using a neural network

Also Published As

Publication number Publication date
CN110401836A (en) 2019-11-01
CN115115720A (en) 2022-09-27
CN110401836B (en) 2022-04-26

Similar Documents

Publication Publication Date Title
WO2019205871A1 (en) Image decoding and encoding methods and apparatuses, and device thereof
US11140401B2 (en) Coded-block-flag coding and derivation
Wiedemann et al. DeepCABAC: A universal compression algorithm for deep neural networks
Cohen et al. Lightweight compression of neural network feature tensors for collaborative intelligence
WO2016165603A1 (en) Encoding and decoding method and device for video data
WO2018019044A1 (en) Encoding method and device
JP2017521980A (en) Digital image coding method, decoding method, related apparatus and computer program
US11638041B2 (en) Multiple transcode engine systems and methods
US10366698B2 (en) Variable length coding of indices and bit scheduling in a pyramid vector quantizer
US10608664B2 (en) Electronic apparatus for compression and decompression of data and compression method thereof
BR112013002029B1 (en) METHOD, DEVICE AND STORAGE MEANS
Cohen et al. Lightweight compression of intermediate neural network features for collaborative intelligence
RU2635876C1 (en) Encoding and decoding positions of spectral peaks
US20230106778A1 (en) Quantization for Neural Networks
Le et al. Mobilecodec: neural inter-frame video compression on mobile devices
JP2006129467A (en) Lossless adaptive encoding/decoding of integer data
CN112468816B (en) Method for establishing fixed code rate coefficient prediction model and video coding
US9270456B1 (en) System and methodology for decrypting encrypted media
US20140270554A1 (en) Image encoding apparatus and image decoding apparatus
Hu et al. Complexity-guided slimmable decoder for efficient deep video compression
US6771831B2 (en) Data compression method and system using globally optimal scalar quantization
JP2021072540A (en) Image encoding device, decoding device, transmission system, and control method for the same
JP2014521273A (en) Method and apparatus for encoding an image
WO2014154074A1 (en) Methods and devices for coding and decoding depth information, and video processing and playing device
EP3991303A1 (en) Features of range asymmetric number system encoding and decoding

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19793900

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19793900

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19793900

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 03/05/2021)