WO2020042191A1 - 编码方法、解码方法、编码设备和解码设备 - Google Patents

编码方法、解码方法、编码设备和解码设备 Download PDF

Info

Publication number
WO2020042191A1
WO2020042191A1 PCT/CN2018/103692 CN2018103692W WO2020042191A1 WO 2020042191 A1 WO2020042191 A1 WO 2020042191A1 CN 2018103692 W CN2018103692 W CN 2018103692W WO 2020042191 A1 WO2020042191 A1 WO 2020042191A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
output
term reference
reference image
images
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2018/103692
Other languages
English (en)
French (fr)
Inventor
郑萧桢
李蔚然
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SZ DJI Technology Co Ltd
Original Assignee
SZ DJI Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SZ DJI Technology Co Ltd filed Critical SZ DJI Technology Co Ltd
Priority to JP2021510685A priority Critical patent/JP2021535671A/ja
Priority to CN201880042495.0A priority patent/CN110832868A/zh
Priority to PCT/CN2018/103692 priority patent/WO2020042191A1/zh
Priority to EP18931956.9A priority patent/EP3846471A4/en
Publication of WO2020042191A1 publication Critical patent/WO2020042191A1/zh
Priority to US17/187,794 priority patent/US11368679B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one

Definitions

  • the present application relates to the field of video encoding and decoding, and in particular, to an encoding method, a decoding method, an encoding device, and a decoding device.
  • the encoding device encodes some specific images and transmits them in a code stream. These specific pictures are decoded by the decoding device and used as reference pictures or as other references, which are not output by the decoding device. These particular images are referred to herein as non-output images.
  • Existing video codec technologies usually do not encode non-output images in the bitstream, but construct non-output images at both ends of the encoding device and the decoding device. If the decoding device structure does not output the image, the processing of the decoding device will be more complicated. Therefore, in other video encoding and decoding technologies, the encoding device inserts the non-output image into the output image when encoding, and then all the images are sequenced. count, POC). However, the random insertion of the non-output image will cause the temporal correlation of the POC of the output image to be destroyed, which may cause problems such as incorrect motion vector prediction and scaling failure during encoding or decoding.
  • This application provides an encoding method, a decoding method, an encoding device, and a decoding device, which can avoid problems such as motion vector prediction errors and scaling failures during encoding.
  • an encoding method including: encoding an image to be encoded to generate a code stream, the image to be encoded includes a non-output image and an output image, and any two outputs adjacent to each other in display order are displayed in the output image
  • the difference between the image sequence numbers of the images is greater than 1, the difference between the image sequence numbers of any two output images in the output images is the same as the ratio of the shooting time interval of the two arbitrary output images, and at least one of the non-output images
  • the image sequence number of is between the image sequence numbers of two output images adjacent to each other in the display order; and the code stream is sent.
  • a decoding method including: receiving a code stream, where the code stream includes data to be decoded without outputting images and outputting images, and the outputting images are displayed in order of any two adjacent outputting images.
  • the difference between image sequence numbers is greater than 1, the difference between the image sequence numbers of any two output images in the output image is the same as the ratio of the shooting time interval of any two output images, and at least one of the images that does not output an image
  • the sequence number is between the image sequence numbers of two output images adjacent to each other in display order; and the code stream is decoded.
  • an encoding device includes a processor and a memory, and the memory stores computer instructions.
  • the processor executes the computer instructions, the encoding device causes the encoding device to perform the following steps: Encode the to-be-encoded image to generate a code stream, the to-be-encoded image includes a non-output image and an output image, and the output image has a sequence order difference of any two output images adjacent to each other in a display order greater than 1, the output The difference between the image sequence numbers of any two output images in the image is the same as the ratio of the shooting time interval of any two output images, and at least one of the image sequence numbers of the non-output images is displayed in two output adjacent to each other. Between image sequence numbers of the image; sending the code stream.
  • a decoding device includes a processor and a memory, and the memory stores computer instructions.
  • the decoding device causes the decoding device to perform the following steps: Receive a code stream, where the code stream includes data that is not to be output and output data to be decoded, and the difference between the image sequence numbers of any two output images adjacent to each other in display order in the output image is greater than 1,
  • the difference between the image sequence numbers of any two output images is the same as the ratio of the shooting time interval of any two output images, and at least one of the image sequence numbers of the non-output images is in the display order of two adjacent output images.
  • decoding the code stream is the same as the ratio of the shooting time interval of any two output images, and at least one of the image sequence numbers of the non-output images is in the display order of two adjacent output images.
  • a computer-readable storage medium on which instructions are stored, and when the instructions are run on a computer, the computer is caused to execute the method described in the first aspect.
  • a computer-readable storage medium on which instructions are stored, and when the instructions are run on a computer, the computer is caused to execute the method described in the second aspect.
  • a computer program that causes a computer to execute the method of the first aspect.
  • a computer program is provided that causes a computer to perform the method of the second aspect.
  • a non-output image is coded into a code stream, and by making the difference in the POC of any two output images adjacent to each other in the display order of the output image greater than 1, the sequence number of any two output images in the output image
  • the difference is the same as the ratio of the shooting time interval of any two output images, and there can be a POC that does not output an image between the POCs of two adjacent output images on the POC, so that the non-output image can be used without affecting the output.
  • the temporal correlation of the POC of the image it is inserted into the output image, which can avoid problems such as motion vector prediction errors and scaling failures during encoding.
  • FIG. 1 is a schematic flowchart of an encoding method according to an embodiment of the present application.
  • FIG. 2 is a schematic diagram of a reference relationship of pictures in a GOP according to an embodiment of the present application.
  • FIG. 3 is a schematic diagram of a reference relationship of pictures in a GOP according to another embodiment of the present application.
  • FIG. 4 is a schematic diagram of reference relationships of pictures in a GOP according to another embodiment of the present application.
  • FIG. 5 is a schematic diagram of a reference relationship of an image in a GOP according to another embodiment of the present application.
  • FIG. 6 is a schematic flowchart of a decoding method according to an embodiment of the present application.
  • FIG. 7 is a schematic block diagram of an encoding device according to an embodiment of the present application.
  • FIG. 8 is a schematic block diagram of an encoding device according to another embodiment of the present application.
  • FIG. 9 is a schematic block diagram of a decoding device according to an embodiment of the present application.
  • FIG. 10 is a schematic block diagram of a decoding device according to another embodiment of the present application.
  • video data is usually encoded and compressed at the encoding end and decoded at the decoding end.
  • the encoding and compression process includes prediction, transformation, quantization, and entropy encoding.
  • prediction includes two types of intra prediction and inter prediction, the purpose of which is to remove redundant information of the current image block to be encoded by using prediction block data.
  • Intra prediction uses the information of the image in this frame to obtain prediction block data.
  • Inter prediction uses the information of the reference image to obtain prediction block data.
  • the process includes dividing the current to-be-encoded image into several to-be-encoded image blocks, and then dividing the to-be-encoded image block at least once (for example, using the quad in the HEVC standard).
  • Tree partitioning method or quadtree binary tree partitioning method
  • the reference image is searched for the image block that best matches the current sub-image block as the predicted image block, predicting The relative displacement between the image block and the current sub-image block is the motion vector; after that, the corresponding pixel values of the sub-image block and the predicted image block are subtracted to obtain a residual.
  • the residuals corresponding to the obtained sub-image blocks are combined together to obtain the residuals of the image blocks to be encoded. Residuals are transformed, quantized, and entropy-encoded to obtain an entropy-encoded bitstream.
  • Entropy-encoded bitstreams and encoding mode information are encoded, such as information such as intra prediction modes, motion vectors (or motion vector residuals), and so on. Store or send to the decoder.
  • the entropy decoding is performed to obtain the corresponding residuals; the predicted image block corresponding to the image block to be decoded is found based on the decoded motion vector, intra prediction and other information; according to the predicted image block and The residual is used to obtain the value of each pixel in the image block to be decoded.
  • the long-term reference picture is a reference picture as an inter prediction.
  • the long-term reference picture is a coded / decoded picture, such as a coded / decoded I-frame.
  • the long-term reference image is a structured image.
  • the long-term reference image includes multiple image blocks, and any one image block is taken from a certain encoded / decoded image. Different image blocks in the long-term reference image may be taken from different encoded / decoded images.
  • a video is made up of multiple images.
  • different images in the video may use different prediction methods.
  • the image can be divided into an intra-prediction image and an inter-prediction image, where the inter-prediction image includes a forward-prediction image and a bi-prediction image.
  • I-picture is an intra-prediction picture, also called a key frame;
  • P-picture is a forward-prediction picture, that is, a P-picture or I-picture that has been previously encoded / decoded is used as a reference picture;
  • B-picture is a bi-prediction picture, which The front and back images are used as reference images.
  • the encoding / decoding end encodes / decodes multiple pictures to generate a group of pictures (GOP).
  • the GOP is an image group composed of one I-picture and multiple B-pictures (or bidirectionally predicted pictures) and / or P-pictures (or forward-predicted pictures).
  • the GOP consists of separate intra-predicted pictures; or the GOP consists of multiple inter-predicted pictures, for example, the GOP consists of multiple B pictures and / or P pictures.
  • images of different resolutions can be encoded / decoded by dividing the image into multiple small blocks, that is, the image can be divided into multiple image blocks.
  • the image can be divided into any number of image blocks.
  • the image can be divided into an array of m ⁇ n image blocks.
  • the image block may have a rectangular shape, a square shape, a circular shape, or any other shape.
  • An image block can have any size, such as p ⁇ q pixels.
  • Each image block can have the same size and / or shape.
  • two or more image blocks may have different sizes and / or shapes.
  • An image block may or may not have any overlapping portions.
  • the image block is referred to as a macroblock or a maximum coding unit (LCU) in some encoding / decoding standards.
  • this image block is called a macroblock, and its size can be 16 ⁇ 16 pixels.
  • an image block is called a Coding Tree Unit (CTU), and its size can be 8 ⁇ 8 pixels to 64 ⁇ 64 pixels.
  • an image block may not be a macroblock or a coding tree unit, but may include a part of a macroblock or a coding tree unit, or at least two complete macroblocks (or coding tree units). Either it contains at least one complete macroblock (or coding tree unit) and a part of one macroblock (or coding tree unit), or it contains at least two complete macroblocks (or coding tree unit) and some macroblocks (or coding tree) Unit). In this way, after the image is divided into a plurality of image blocks, these image blocks in the image data can be encoded / decoded separately.
  • an image block may refer to a macro block or a part of a coding tree unit.
  • an image block may refer to a coding unit (Coding Unit, CU) in some video encoding / decoding standards.
  • CU Coding Unit
  • the non-output image is a specific example of no output image.
  • the non-output image may have at least one of the following properties: a composite frame reference, a long-term reference image, a short-term reference image, and a constructed long-term reference image.
  • the construction frame is also referred to as a synthetic reference frame.
  • the non-output image may include an image other than a structured frame, or an image other than a long-term reference image, or an image other than a structured long-term reference image, and so on.
  • the non-output image refers to an image that is not displayed and output; generally speaking, the non-output image exists as a reference image for other images.
  • a long-term reference image and a short-term reference image can be distinguished.
  • the short-term reference image is a concept corresponding to the long-term reference image.
  • the short-term reference image exists in the reference image buffer for a period of time. After the decoded reference image after the short-term reference image is moved into and out of the reference image buffer, the short-term reference image is moved out of the reference image buffer.
  • the reference image buffer may also be referred to as a reference image list buffer, a reference image list, a reference frame list buffer, or a reference frame list, etc., which are collectively referred to herein as a reference image buffer.
  • a long-term reference image (or a part of the data in the long-term reference image) can always exist in the reference image buffer.
  • the long-term reference image (or a part of the data in the long-term reference image) is not subject to the decoded reference image in the reference image buffer.
  • the long-term reference image (or a part of the data in the long-term reference image) will be moved out of the reference image buffer only when the decoder sends an update instruction operation.
  • Short-term reference pictures and long-term reference pictures may be called differently in different standards.
  • short-term reference pictures are called in standards such as H.264 / advanced video coding (AVC) or H.265 / HEVC.
  • AVC advanced video coding
  • Short-term reference frames and long-term reference images are referred to as long-term reference frames.
  • the long-term reference image is called For the background frame (background picture).
  • standards such as VP8 and VP9 long-term reference images are called golden frames.
  • the long-term reference image mentioned above may be constructed from image blocks taken from multiple coded / decoded images, or an existing reference frame (e.g., a pre-stored reference frame) may be updated using multiple coded / decoded images get.
  • One possible construction method is to initialize the construction frame to the image of the random access point when the image of the random access point (I image) is encoded, and use the current one when encoding any image before the next random access point. The image is compared with the previous frame image block by block. When the image block of the current image is similar to the image block at the corresponding position of the previous frame image, it is considered to be part of the background, and the corresponding position of the construction frame is replaced with this block.
  • This construction frame is used as a long-term reference image.
  • the long-term reference image may not be a structured reference image.
  • the type of the image may be identified by a special field in the code stream structure.
  • the image when the image is determined to be a long-term reference image, the image is determined to be a non-output image; or, when the image is determined to be a construction frame, the image is determined to be a non-output image.
  • both the non-output image and the output image may have corresponding identifiers.
  • it may be determined whether the image is a non-output image or an output image according to the identifier of the image.
  • the image when it is determined that the image has an identifier of a long-term reference image, it is determined that the image is a non-output image.
  • the image when it is determined that the image has an identifier that is not to be output, it is determined that the image is a non-output image.
  • the image when it is determined that the image has an identification of a structured frame, it is determined that the image is a non-output image.
  • the foregoing various identifiers may be included in a sequence header, a picture header, a picture parameter set (PPS), and a slice header to determine whether the image is a non-output image.
  • PPS picture parameter set
  • a frame of an image may be divided into at least one slice, and each slice includes a group of coding units.
  • Each slice can be independently encoded, decoded, or reconstructed.
  • Information such as reference pictures used in encoding / decoding can be encoded in the slice header.
  • each image is numbered.
  • images are numbered according to the display order.
  • the display order numbers are used for calculations.
  • the RPS configuration parameter identifies a reference image used for encoding, and the reference image may include a short-term reference image and / or a long-term reference image.
  • RPS configuration parameters By indicating the RPS configuration parameters through the RPS information, you can know which pictures need to be used as reference pictures for encoding / decoding the current picture. In some possible implementations, it can be known which images in the reference image buffer are no longer used by the reference. For different bands, there can be different RPS configuration parameters to flexibly select the reference image.
  • RPS information can be encoded at the beginning of each slice, that is, at the slice header; RPS information can also be encoded in the sequence header, image header, and PPS. It should be understood that the parameters of the entire image may be included in the image header. In order to simplify the coding of the image header, if the image header does not change much in subsequent images, it can be identified by the index in the PPS. If the image is divided into strips, the RPS information is usually not located in the image header, but in the strip header.
  • the RPS configuration parameters of short-term reference images need to be labeled with reference image information: how many short-term reference images the current image has, what is the sequence number (POC) of each short-term reference image relative to the current image, all Which of the short-term reference images are available for the current image, etc.
  • the RPS configuration parameters of a typical low-delay-B coding short-term reference picture can be shown in Table 1.
  • POC ref_pics_active ref_pics reference_pictures predict deltaRPS refidcs_ reference idcs 1 B 1 4 4 -1-5-9-13 0 Zh Zh Zh 2 B 2 4 4 -1-2-6-10 1 -1 5 11101 3 B 3 4 4 -1-3-7-11 1 -1 5 01111 4 B 4 4 4 -1-4-8-12 1 -1 5 01111
  • index indicates the index of the RPS configuration parameter of the short-term reference image.
  • type indicates the encoding method, and B refers to the encoding method using bidirectional prediction.
  • the POC refers to the position in the GOP of the picture to which the RPS configuration parameter applies.
  • ref_pics_active indicates the total number of short-term reference images to which this RPS configuration parameter can be used.
  • ref_pics indicates the number of short-term reference pictures in the reference picture buffer.
  • reference_pictures represents the POC offset of the short-term reference pictures in the reference picture buffer relative to the current picture.
  • Predictive coding uses simplified RPS configuration parameters to simplify coding elements.
  • the predict of the RPS configuration parameters indicates the method used to encode the RPS configuration parameters.
  • the predict in the RPS configuration parameter of index1 is 0, which indicates that the RPS configuration parameter of index1 is directly encoded; the predict in the RPS configuration parameter of index2-4 is 1, which indicates that the RPS configuration parameter of index2-4 uses predictive encoding.
  • the way of predictive coding can be as follows: deltaRPS indicates the deviation of the RPS configuration parameter from the reference RPS configuration parameter on reference_pictures. For example, when the deltaRPS value is -1, the POC of the reference_pictures of the reference is added to -1 during prediction to obtain the reference_pictures of the RPS configuration parameter.
  • ref_idcs indicates how many reference_pictures POCs are needed for reference, and the corresponding specific images are listed in reference idcs.
  • the reference idcs of the RPS configuration parameter of index2 is 1 and the meaning is that you need to use the 1, 2, 3, and 5 of the reference_pictures of the referenced RPS configuration parameters (RPS configuration parameters of index1).
  • Value for reference reference (reference_pictures that does not exist in the RPS configuration parameter of index1, for example, the POC of the fifth reference_pictures is considered to be 0). Therefore, the RPS configuration parameters of index2 use -1, -5, -9, 0 relative to the RPS configuration parameters of index1 as a reference.
  • reference_pictures is -1, -2, -6, -10 after sorting, which is the reference_pictures of the RPS configuration parameter of index2 in Table 1.
  • the reference idcs is 0, and the reference_pictures-2, -6, -10, and 0 corresponding to the RPS configuration parameter of index2 are added to deltaRPS to get -3, -7, -11, -1.
  • the values of reference_pictures of the RPS configuration parameter of index3 are -1, -3, -7, and -11.
  • the RPS configuration parameters of index4 are the same, and are not repeated here.
  • the above Table 1 is only an exemplary description of RPS configuration parameters of a short-term reference image using an existing POC configuration method. It should be understood that the RPS configuration of the short-term reference image may have other forms, and is not limited to the format and content of the above table.
  • the RPS configuration of the short-term reference image and the RPS configuration of the long-term reference image in this application will continue to be described in detail below.
  • FIG. 1 is a schematic flowchart of an encoding method 100 according to an embodiment of the present application. As shown in FIG. 1, the encoding method 100 may include the following steps.
  • the to-be-encoded image includes a non-output image and an output image, and the difference between the sequence order numbers (POC) of any two output images adjacent to each other in the display order is greater than 1,
  • the difference between the image sequence numbers of any two output images in the output images is the same as the ratio of the shooting time interval of any two output images, and at least one of the image sequence numbers of the non-output images Output image sequence number.
  • the encoding method in the embodiment of the present application encodes a non-output image into a code stream.
  • the difference between the sequence numbers of the images is the same as the ratio of the shooting time interval of any two output images, and there may be a POC that does not output images between the POCs of two adjacent output images on the POC. Without affecting the temporal correlation of the POC of the output image, it can be inserted into the output image to avoid problems such as motion vector prediction errors and scaling failures during encoding.
  • the difference between the image sequence numbers of any two output images in the output images and the shooting time interval of the any two output images are the same means that any two of the output images
  • the difference between the image sequence numbers of the two output images is proportional to the ratio of the shooting time interval of any two output images.
  • the ratio of the difference between the image sequence numbers of any two output images in the output images to the shooting time interval of the any two output images is different from the image sequence numbers of any two other output images.
  • the ratio is equal to the ratio of the shooting time interval of any two other output images.
  • the difference between the sequence numbers of any two output images is proportional to the ratio of the shooting time interval of any two output images.
  • the image sequence number of output image A is POC A and the shooting time is t A ; it is assumed that the image sequence number of output image B is POC B and the shooting time is t B.
  • the difference between the image sequence numbers of the output image A and the output image B is POC B -POC A.
  • the shooting time interval between the output image A and the output image B is t B -t A.
  • the image sequence number of output image C is POC C and the shooting time is t C ; it is assumed that the image sequence number of output image D is POC D and the shooting time is t D.
  • the difference between the image sequence numbers of the output image C and the output image D is POC D -POC C.
  • the shooting time interval between the output image C and the output image D is t D -t C.
  • the difference between the image sequence numbers of any two output images and the ratio of the shooting time interval of any two output images is proportional to: the ratio of POC B -POC A to t B -t A and POC D -POC
  • the ratio of C to t D -t C is equal. Among them, at most one of the output image C and the output image D is the same as the output image A or the output image B.
  • the difference between the image sequence numbers of any two output images is proportional to the ratio of the shooting time interval of any two output images, which can ensure that the POC of multiple output images can reflect The time characteristics of the shooting time, so that the accuracy of the motion vector based on the POC prediction or the zoom operation based on the POC is correct.
  • At least part of the image sequence numbers of two output images adjacent to each other in the display order are different from each other in the same order.
  • the sequence number of the image may be determined based on the sequence of shooting the image multiplied by a certain multiple. It is assumed that the original shooting order of the output image is 0, 1, 2, 3, .... In some embodiments of the present application, the POC of the output image may be a multiple of the original shooting order, for example, may be 0, 2, 4, 6, ..., or may be 0, 3, 6, 9, ..., etc .; output The POC of the image can be a multiple of the original shooting order plus a constant, for example, it can be 1, 3, 5, 7, ..., or it can be -1, 2, 5, 8, ....
  • the difference between the image sequence numbers of any two output images adjacent to each other in the display order is equal to and greater than 1, which ensures that the display order of the output images remains unchanged, and the embodiment of the present application does not change the output image.
  • the original display order of the output images is not necessarily equidistant.
  • the original shooting order of the output images is 0, 1, 2, 3, 4, 5, 6, 7, 8 ... ...
  • the images 3 and 6 in the middle are discarded for some reasons (for example, comparison cards), and become 0,1,2,4,5,7,8 ...
  • the POC of the output image may be a multiple of the original shooting order, for example, it may be 0, 2, 4, 8, 10, 14, 16,....
  • the original display order of the output image may have other manifestations.
  • the POC of the output image may also have other expressions, which is not limited in the embodiment of the present application.
  • a difference between image sequence numbers of any two output images adjacent to each other in a display order may be two.
  • the sequence of the POC of the output image is 0, 2, 4, 6, ..., or 1, 3, 5, 7, ....
  • the presence of a non-output image does not affect the distances referenced by operations such as motion vector prediction and scaling of any two output frames.
  • the number of POCs that do not output images between any two adjacent POCs that output images on the POC may be the same or different.
  • the sequence of the POCs of the output images listed earlier herein and those listed below is merely exemplary, rather than limiting the embodiments of the present application.
  • the minimum number of the POC of the output image may not start from 0 or not from 1.
  • the specific form of the POC is not limited in this application.
  • the encoding method 100 may further include: dividing the image to be encoded into multiple image groups, where An image group is composed of a single intra-prediction image or a plurality of inter-prediction images.
  • the sequence of the image to be encoded is I0, B2, B4, B6, B8, B10, B12, B14, B16, B17, B18 ..., where B17 is not Output image, others are output images.
  • the I picture that is, I0, can be divided into one GOP, and every four subsequent output pictures are one GOP, for example, B2, B4, B6, and B8 are one GOP, and B10, B12, B14, and B16 are one GOP.
  • FIG. 2 is a schematic diagram of a reference relationship (that is, a reference short-term reference picture) of a picture in a GOP according to an embodiment of the present application.
  • the inter prediction of each frame of the GOP will use the previous frame of the current image and the last frame of the previous consecutive GOPs as short-term reference images.
  • the total number of short-term reference images of each frame image does not exceed 4 frames.
  • the short-term reference picture used by B16 is B14 (the previous picture of the current picture), and B8 and I0 (the last picture of the previous consecutive GOPs).
  • the short-term reference pictures used for picture B28 are B26 (the previous picture of the current picture), and B24, B16, B8 (the last picture of the previous three consecutive GOP frames, and the total number of short-term reference pictures does not exceed 4 ).
  • the sequence of images to be coded is I0, P16, B8, B4, B2, B6, B12, B10, B14, B17, P32, B24, B20, B18, B22, B28, B26, B30, etc., where B17 is no output image, the others are output images.
  • the I picture that is, I0, can be divided into one GOP, and every eight subsequent output pictures are one GOP, for example, P16, B8, B4, B2, B6, B12, B10, B14 is a GOP, P32, B24, B20, B18 , B22, B28, B26, B30 are one GOP.
  • the image to be encoded includes a first non-output image.
  • the at least one non-output image of the image to be encoded includes a first non-output image.
  • the encoding order of the first non-output image is after the first image group and before the second image group.
  • the first picture group and the second picture group may be GOPs of two output pictures that are consecutive in the coding order. This is beneficial to not disturb the reference relationship of the pictures in each GOP and improve the coding efficiency.
  • the image B17 is not output after the GOP composed of B10, B12, B14, B16 and before the GOP composed of B18 ...
  • the image B17 is not output after the GOP composed of P16, B8, B4, B2, B6, B12, B10, B14, and then at P32, B24, B20, B18, B22, B28, B26 , B30 is encoded before the GOP.
  • the encoding order of the first non-output image can also be encoded without considering the division of the GOP, and the first non-output image can be encoded between any two output frames. This application The embodiment is not limited thereto.
  • the reference image set configuration parameters used when encoding the images are adjusted accordingly, such as the RPS configuration parameters.
  • the RPS configuration parameters may be changed to the contents of Table 2 relative to Table 1.
  • the non-output image may be encoded using a similar encoding method as the output image, for example, the inter-prediction encoding method may be used for encoding the non-output image.
  • the short-term reference image used for encoding the non-output image may be an image that has been encoded.
  • S110 encoding the to-be-encoded image to generate a code stream may include: referring to a short-term reference image that is the same as a short-term reference image used for a last image in the first image group, Encoding the first non-output image. That is, the short-term reference image referred to by the first non-output image is the same as the short-term reference image of the last image in the first image group adjacent to the first non-output image and before the first non-output image.
  • the last image in the first image group may be the last image in the first image group in the coding order.
  • the last image in the first image group may also be the last image in the display order in the first image group, which is not limited in this embodiment of the present application.
  • S110 encoding the to-be-encoded image to generate a code stream may include: referring to a short-term reference image that is the same as a short-term reference image used by the first image in the second image group , Encoding the first non-output image. That is, the short-term reference image referenced by the first non-output image is the same as the short-term reference image of the first image in the second image group adjacent to the first non-output image and in the second image group after the first non-output image. .
  • first image in the second image group may be an image in which the coding order is located in the first in the second image group.
  • the first image in the second image group may also be an image in the second image group in a display order, which is not limited in the embodiment of the present application.
  • the short-term reference picture of the first picture in the GOP is -2, -10, -18, -26. Since the POC of the non-output image is 1 less than the POC of the first image in the second image group, the short-term reference image of the non-output image should be -1, -9, -17, -25.
  • the RPS information of the short-term reference picture used for encoding the non-output picture will be described in detail below.
  • the image to be encoded includes a second non-output image
  • the code stream may include a first type of reference image used to instruct the second non-output image to be encoded.
  • the first type of reference image set includes short-term reference images. That is, the information of the first type of reference image set includes RPS information of the short-term reference image used for encoding the second non-output image. It should be understood that the RPS information of the short-term reference image may be transmitted through a sequence header and / or a slice header.
  • multiple RPS configuration parameters that can be used for short-term reference images that do not output images can be configured in the sequence header in advance.
  • One of the subsequent non-output images for example, which RPS configuration parameter is used for the second non-output image, can use the instructions used.
  • the sequence header of the bitstream may include a correspondence between configuration parameters and indexes of at least one frame of short-term reference images; the information of the first type of reference image set includes: used to indicate that the second non-output image is used The index corresponding to the configuration parameters of the short-term reference image.
  • the configuration parameter of at least one frame of the short-term reference image is an RPS configuration parameter of the short-term reference image that can be used for encoding the non-output image.
  • the information of the first type of reference image set that is, the index corresponding to the configuration parameter of the short-term reference image used by the second non-output image, may be located in the slice header of the second non-output image, or may be located in the image header.
  • the RPS configuration parameters of a short-term reference image that does not output an image may be directly indicated without using an index.
  • the information of the first type of reference image set may include configuration parameters for indicating the short-term reference image used by the second non-output image.
  • the information of the first type of reference image set that is, the configuration parameters of the short-term reference image used by the second non-output image, may be located in the slice header of the second non-output image, or may be located in the image header.
  • the configuration parameters of the short-term reference image used by the second non-output image may include: an image sequence number of the short-term reference image used by the second non-output image is relative to An offset of an image sequence number of the second non-output image. That is, similar to the encoding method of the configuration parameters of the short-term reference image used for the output image, the prediction encoding can be used to encode the configuration parameters of the short-term reference image used for the non-output image. The number of coding bits can be saved by predictive coding.
  • the case where the short-term reference picture of the first picture in the next GOP is not outputted is still used as a reference for description.
  • the deltaRPS of the current non-output image and the first image in the next GOP is 1.
  • ref_idcs is 4, that is, 4 reference_pictures of the first picture in the next GOP are used as short-term reference pictures.
  • Reference_pictures that do not output images are -1, -9, -17, -25.
  • the reference idcs is 1.
  • the long-term reference picture used for encoding the non-output image may be the same as the long-term reference picture used for the last picture in the previous picture group, or the same long-term reference picture used for the first picture in the latter picture group.
  • encoding non-output images can use any long-term reference image in the reference image buffer.
  • the long-term reference image may not be referenced in the encoding of the non-output image, which is not limited in the embodiment of the present application.
  • the following describes in detail the RPS information of the long-term reference image used by the encoded image (including the output image and the non-output image) in the embodiment of the present application.
  • the code stream includes information for indicating a second type of reference image set used for encoding the image, and the second type of reference image set includes a long-term reference image.
  • the RPS information of the long-term reference image may be similar to the way of indicating the RPS information of the short-term reference image.
  • a sequence header of the bitstream may include a correspondence between a configuration parameter and an index of at least one frame of a long-term reference image; the information of the second type of reference image set may include: The index corresponding to the configuration parameter of the long-term reference image used to indicate the image.
  • the information of the second type of reference image set may include configuration parameters for indicating a long-term reference image used by the image.
  • the configuration parameters of the long-term reference image used by the image may also be referred to as the RPS configuration parameters of the long-term reference image used by the image.
  • the RPS configuration parameter of the long-term reference image used by the image may include an offset of an image sequence number of the long-term reference image used by the image relative to the image sequence number of the image.
  • the indication method of the RPS information of the long-term reference picture and the RPS information of the short-term reference picture may also be different.
  • the RPS information of the long-term reference image may not be based on a predictive coding method, but a direct coding method.
  • the information of the second type of reference image set is located in a sequence header of the code stream, and the information of the second type of reference image set includes: a third image that does not output an image A sequence number, and the third non-output image is used as a long-term reference image of an image block of an image in a sequence corresponding to the sequence header.
  • the image sequence number of the non-output image in the sequence header can be used as the long-term reference image of the image block of the image (including the output image and / or non-output image) in the sequence corresponding to the sequence header.
  • the third non-output image may include one non-output image or a plurality of non-output images.
  • the information of the second type of reference image set is located in a sequence header of the code stream, and an image sequence number of a non-output image in the sequence header may correspond to the sequence header.
  • a long-term reference image for a block of images in a sequence of images (including output images and / or non-output images).
  • the sequence header may include one or more image sequence numbers that do not output images. Whether a specific image or a slice of an image uses a non-output image corresponding to an image sequence number in a sequence header as a long-term reference image may also be specifically indicated in the image header or the slice header.
  • the information of the second type of reference image set is located in a slice header of the first slice of the image of the bitstream, and the information of the second type of reference image set includes : As a configuration parameter of a long-term reference image of the image block in the first strip.
  • the information of the second type of reference image set located in the slice header may be used to indicate the configuration of the long-term reference image of the image block in the corresponding slice.
  • the configuration parameters of the long-term reference image as the image block in the first strip may include: the number of images not to be output and an image sequence number of images not to be output.
  • the configuration parameters of the long-term reference image in the configuration parameters of the long-term reference image, the non-output images corresponding to the sequence number of the image contained in the slice header are all used as the long-term reference image of the image block in the first slice.
  • the configuration parameter of the long-term reference image that is an image block in the first band may further include: indicating whether the output image is not a long-term reference of the first band. The first identifier of the reference image.
  • the non-output images corresponding to the image sequence numbers contained in the slice header are not all used as long-term reference images of the image blocks in the first slice. Whether it is a long-term reference image for the first band also depends on the indication of the first identifier.
  • the encoding device when the first identifier indicates that a fourth non-output image in the non-output image is not used as a long-term reference image of an image block in the first band, the encoding device will The output image is deleted from the reference image buffer. In other words, the encoding device deletes the fourth non-output image from the reference image buffer, and uses the first identifier to indicate that the fourth non-output image is not used as a long-term reference image of the image block in the first band. After the fourth non-output image is deleted from the reference image buffer, the slice or image encoded after the first slice will no longer refer to the fourth non-output image.
  • strip header in the embodiments of the present application may also be replaced with an image header.
  • one image header also corresponds to one image.
  • the configuration of the long-term reference image may be indicated in the sequence header and in the slice header at the same time.
  • the configuration of the long-term reference image in the sequence header is applicable to all images (or slices, or image blocks) in the sequence corresponding to the sequence header.
  • the configuration of the long-term reference image in the slice header is applicable to the image blocks in the slice corresponding to the slice header.
  • the at least one non-output image of the code stream includes a fifth non-output image and a sixth non-output image
  • the sixth non-output image is in the fifth Encoding is done after no image is output.
  • Encoding the to-be-encoded image to generate a bitstream may include: using the fifth non-output image as a long-term reference image, and encoding the encoding sequence located after the first non-output image and before the sixth non-output image The output image is encoded.
  • the fifth non-output image can be used as the long-term reference image.
  • the long-term reference image referenced by the image to be encoded may be agreed by other rules, which is not limited in the embodiment of the present application.
  • all output images can use the non-output image as a reference image. You can identify non-output images as long-term reference images and place them in the reference image buffer.
  • the RPS information of the output image after the image is not output can be modified to a certain extent, and the RPS configuration parameters of a long-term reference image can be specifically added.
  • the portion of the short-term reference image of its RPS configuration parameter may be encoded.
  • the part of the long-term reference image may specifically include the number of long-term reference images, a POC that uses a non-output image as a long-term reference image, a first identifier that marks whether the non-output image is referenced by the current image, and the like.
  • the encoding method 100 may further include: constructing the non-output image according to an image block of a plurality of images before the non-output image in an encoding order.
  • constructing the non-output image according to an image block of a plurality of images located before the non-output image according to a coding order may include: updating the image block of the original image according to the multiple images based on the original image; When the number of updated image blocks is greater than or equal to a preset threshold, the updated original image is used as the non-output image.
  • the original image may be an intra-prediction image, that is, an I frame.
  • the original image may be an image corresponding to a random access point.
  • the construction method may be based on a block-by-block update method.
  • the method for determining the completion of the non-output image construction may be: the non-output image has been updated with an image block having a preset threshold value or more than the original image. For example, no less than 25% of the image blocks have been updated.
  • the non-output image has been constructed.
  • the embodiments of the present application may also select or construct a non-output image based on other methods, such as directly determining an I-frame as a non-output image, which is not limited in the embodiments of the present application.
  • the encoded data of the non-output image includes a second identifier for indicating that the non-output image is not output.
  • the parameter output_flag_present_flag of its PPS can be set to 1, indicating that the slice header contains the value of pic_output_flag.
  • the parameter pic_output_flag of the slice header of the non-output image is set to 0, which indicates that the image where the slice is located is a non-output image.
  • Table 3 is an example of the RPS configuration parameters of the short-term reference image sampled from the existing POC configuration method. In this encoding mode, there are two frames of output images in each GOP.
  • POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs 1 B 1 2 2 -1-3 0 Zh Zh Zh
  • FIG. 3 is a schematic diagram of reference relationships of pictures in a GOP according to an embodiment of the present application.
  • the reference image set configuration parameters used when encoding the images are adjusted accordingly, such as the RPS configuration parameters.
  • the RPS configuration parameters may be changed to Table 4 with respect to Table 3.
  • POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs 1 B 2 2 2 -2-6 0 Zh Zh Zh 2 B 4 2 2 -2-4 1 -2 3 101
  • the non-output image is constructed. After the non-output image is constructed, it is selected to encode the non-output non-output image after the end of one GOP and before the end of the next GOP.
  • the RPS information for encoding the non-output image may use an inter-frame encoding method.
  • the case where the short-term reference picture of the first picture in the next GOP is not outputted is still used as a reference for description.
  • the deltaRPS of the current non-output image and the first image in the next GOP is 1.
  • ref_idcs is 2, that is, two reference_pictures of the first picture in the next GOP are used as short-term reference pictures. Reference_pictures that do not output images are -1, -5.
  • the reference idc is 1.
  • the parameter output_flag_present_flag of the PPS that does not output an image may be set to 1, indicating that the slice header includes a value of pic_output_flag.
  • the parameter pic_output_flag of the slice header of the non-output image is set to 0, which indicates that the image where the slice is located is a non-output image.
  • all output images can use the non-output image as a reference image. You can identify non-output images as long-term reference images and place them in the reference image buffer.
  • the RPS information of the output image after the image is not output can be modified to a certain extent, and the RPS configuration parameters of a long-term reference image can be specifically added.
  • the portion of the short-term reference image of its RPS configuration parameter may be encoded.
  • the part of the long-term reference image may specifically include the number of long-term reference images, a POC using a non-output image as a long-term reference image, a first identifier that marks whether the non-output image is referenced by the current image, and the like.
  • Table 5 below is an example of RPS configuration parameters for sampling a short-term reference image of an existing POC configuration method. In this encoding mode, there is one frame of output image in each GOP.
  • POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs 1 B 1 2 2 -1-2 0 Zh Zh Zh
  • FIG. 4 is a schematic diagram of a reference relationship of pictures in a GOP according to an embodiment of the present application.
  • the reference image set configuration parameters used when encoding the images are adjusted accordingly, such as the RPS configuration parameters.
  • the RPS configuration parameters may be changed to those in Table 6 relative to Table 5.
  • the non-output image is constructed. After the non-output image is constructed, it is selected to encode the non-output non-output image after the end of one GOP and before the next GOP.
  • the RPS information for encoding the non-output image may use an inter-frame encoding method.
  • the case where the short-term reference picture of the first picture in the next GOP is not outputted is still used as a reference for description.
  • the deltaRPS of the current non-output image and the first image in the next GOP is 1.
  • ref_idcs is 2, that is, two reference_pictures of the first picture in the next GOP are used as short-term reference pictures.
  • the reference_pictures of the output images are -1, -3.
  • the reference idc is 1.
  • the parameter output_flag_present_flag of the PPS that does not output an image may be set to 1, indicating that the slice header includes a value of pic_output_flag.
  • the parameter pic_output_flag of the slice header of the non-output image is set to 0, which indicates that the image where the slice is located is a non-output image.
  • all output images can use the non-output image as a reference image. You can identify non-output images as long-term reference images and place them in the reference image buffer.
  • the RPS information of the output image after the image is not output can be modified to a certain extent, and the RPS configuration parameters of a long-term reference image can be specifically added.
  • the part of the long-term reference image of the RPS configuration parameter may be encoded.
  • the part of the long-term reference image may specifically include the number of long-term reference images, a POC that uses a non-output image as a long-term reference image, a first identifier that marks whether the non-output image is referenced by the current image, and the like.
  • Table 7 is an example of the RPS configuration parameters of the short-term reference image using the existing POC setting method in a hierarchical coding mode. In this encoding mode, there are 4 frames of output images in each GOP.
  • POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs 1 B 4 2 2 -4-8 0 Zh Zh Zh 2 B 2 2 2 -twenty two 1 6 2 11 3 B 1 2 3 -113 1 1 3 111 4 B 3 2 3 -1-31 1 -2 3 111
  • FIG. 5 is a schematic diagram of a reference relationship of pictures in a GOP according to an embodiment of the present application.
  • the coding sequence is I0, B4, B2, B1, B3, B8, B6, B5, B7.
  • the reference image set configuration parameters used when encoding the images are adjusted accordingly, such as the RPS configuration parameters.
  • the RPS configuration parameters may be changed to the contents of Table 8 relative to Table 7.
  • POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs 1 B 8 2 2 -8-16 0 Zh Zh Zh 2 B 4 2 2 -44 1 12 2 11 3 B 2 2 3 -226 1 2 3 111 4 B 6 2 3 -2-62 1 -4 3 111
  • the non-output image is constructed. After the non-output image is constructed, it is selected to encode the non-output non-output image after the end of one GOP and before the end of the next GOP.
  • the RPS information for encoding the non-output image may use an inter-frame encoding method.
  • the case where a short-term reference picture of the first picture in the next GOP is not output as a picture will be described as a reference.
  • the deltaRPS of the current non-output image and the first image in the next GOP is 1.
  • ref_idcs is 2, that is, two reference_pictures of the first picture in the next GOP are used as short-term reference pictures.
  • the reference_pictures of the output images are -7, -15.
  • the reference idc is 1.
  • the parameter output_flag_present_flag of the PPS that does not output an image may be set to 1, indicating that the slice header includes a value of pic_output_flag.
  • the parameter pic_output_flag of the slice header of the non-output image is set to 0, which indicates that the image where the slice is located is a non-output image.
  • all output images can use the non-output image as a reference image. You can identify non-output images as long-term reference images and place them in the reference image buffer.
  • the RPS information of the output image after the image is not output can be modified to a certain extent, and the RPS configuration parameters of a long-term reference image can be specifically added.
  • the portion of the long-term reference image of the RPS configuration parameters can be encoded.
  • the part of the long-term reference image may specifically include the number of long-term reference images, a POC that uses a non-output image as a long-term reference image, a first identifier that marks whether the non-output image is referenced by the current image, and the like.
  • FIG. 6 is a schematic flowchart of a decoding method 200 according to an embodiment of the present application. As shown in FIG. 6, the decoding method 200 may include the following steps.
  • S210 Receive a code stream, where the code stream includes data that is not to be output and output data to be decoded, and the difference between image sequence numbers of any two output images adjacent to each other in display order in the output image is greater than 1,
  • the difference between the image sequence numbers of any two output images is the same as the ratio of the shooting time interval of any two output images, and at least one of the image sequence numbers of the non-output images is in the display order of two adjacent output images. Between sequence numbers.
  • no output image exists in the code stream.
  • the difference between the sequence numbers of the images is the same as the ratio of the shooting time interval of any two output images, and there may be a POC that does not output images between the POCs of two adjacent output images on the POC. Without affecting the temporal correlation of the POC of the output image, it can be inserted into the output image to avoid problems such as motion vector prediction errors and scaling failures during encoding.
  • a difference between image sequence numbers of any two output images in the output images is proportional to a ratio of a shooting time interval of any two output images.
  • the ratio of the difference between the image sequence numbers of any two output images in the output images to the shooting time interval of the any two output images is different from the image sequence numbers of any two other output images.
  • the ratio is equal to the ratio of the shooting time interval of any two other output images.
  • a difference between image sequence numbers of any two output images adjacent to each other in the display order is two.
  • the to-be-encoded image includes a second non-output image
  • the code stream includes a first-type reference image used to instruct to encode the second non-output image.
  • Set of information, the first type of reference image set includes short-term reference images.
  • a sequence header of the bitstream includes a correspondence between a configuration parameter and an index of at least one frame of the short-term reference image; the information of the first type of reference image set includes: An index corresponding to a configuration parameter indicating a short-term reference image used by the second non-output image.
  • the information of the first type of reference image set includes: a configuration parameter for indicating a short-term reference image used by the second non-output image.
  • the information of the first type of reference image set is located in a slice header of the second non-output image.
  • the configuration parameters of the short-term reference image used by the second non-output image include: an image sequence number of the short-term reference image used by the second non-output image is relative to An offset of an image sequence number of the second non-output image.
  • the code stream includes information for indicating a second type of reference image set used for encoding the image, and the second type of reference image set includes a long-term reference image.
  • the information of the second type of reference image set is located in a sequence header of the code stream, and the information of the second type of reference image set includes: a third non-output image Sequence number of the image, and the third non-output image is used as a long-term reference image of the image block of the image in the sequence corresponding to the sequence header.
  • information of the second type of reference image set is located in a slice header of a first slice of an image of the bitstream, and information of the second type of reference image set It includes: a configuration parameter of a long-term reference image as an image block in the first strip.
  • the configuration parameters of the long-term reference image as the image block in the first strip include: the number of non-output images and an image sequence number of non-output images .
  • the configuration parameter of the long-term reference image serving as the image block in the first strip further includes: indicating whether the non-output image is used as the first The first identifier of the sliced long-term reference image.
  • S220 decoding the code stream includes: when the first identifier indicates that a fourth non-output image of the non-output images is not used as the first When the long-term reference image of the image block in the slice is deleted, the fourth non-output image is deleted from the reference image buffer.
  • the at least one non-output image of the code stream includes a fifth non-output image and a sixth non-output image, and the sixth non-output image is in the first Decoding is completed after five non-output images;
  • S220 decoding the code stream includes: using the fifth non-output image as a long-term reference image, and the decoding order is after the first non-output image and at the sixth The output image before the image is not output is decoded.
  • the encoded data of the non-output image includes a second identifier for indicating that the non-output image is not output.
  • the non-output image includes at least one of the following: a long-term reference image, a structured frame, a short-term reference image, and a constructed long-term reference image.
  • FIG. 7 is a schematic block diagram of an encoding device 300 according to an embodiment of the present application.
  • the encoding device 300 includes: an encoding module 310 for encoding an image to be encoded to generate a code stream, the image to be encoded includes a non-output image and an output image, and any two output images adjacent to each other in display order are displayed in the output image
  • the difference between the sequence numbers of any two of the output images is greater than 1, the difference between the sequence numbers of any two output images in the output images is the same as the ratio of the shooting time interval of any two output images, and at least one of the
  • the image sequence number is between the image sequence numbers of two output images adjacent to each other in a display order; and the sending module 320 is configured to send a code stream generated by the encoding module 310.
  • the encoding device in the embodiment of the present application encodes a non-output image into a code stream, so that the difference between the POCs of any two output images adjacent to each other in the display order in the output image is greater than 1, and the two adjacent output images on the POC There can be a POC that does not output an image between the POCs, so that the non-output image can be inserted into the output image without affecting the temporal correlation of the POC of the output image, which can avoid motion vector prediction errors and scaling during encoding. Problems such as failure.
  • At least a part of the image sequence numbers of two output images adjacent to each other in order of display are different from each other in order.
  • a difference between image sequence numbers of any two output images adjacent to each other in the display order is two.
  • the encoding device 300 further includes a processing module 330, configured to divide the image to be encoded into multiple images before the encoding module 310 encodes the image to be encoded to generate a code stream.
  • a group which is composed of a single intra-prediction image or a plurality of inter-prediction images.
  • the image to be encoded includes a first non-output image
  • the encoding order of the first non-output image is after the first image group and before the second image group.
  • the encoding module 310 is specifically configured to reference a short-term reference image that is the same as a short-term reference image used for a last image in the first image group, and The output image is encoded.
  • the encoding module 310 is specifically configured to reference a short-term reference image that is the same as a short-term reference image used by the first image in the second image group, and No image is output for encoding.
  • the to-be-encoded image includes a second non-output image
  • the code stream includes a first-type reference image used to instruct to encode the second non-output image.
  • Set of information, the first type of reference image set includes short-term reference images.
  • a sequence header of the bitstream includes a correspondence between a configuration parameter and an index of at least one frame of the short-term reference image; the information of the first type of reference image set includes: An index corresponding to a configuration parameter indicating a short-term reference image used by the second non-output image.
  • the information of the first type of reference image set includes: a configuration parameter for indicating a short-term reference image used by the second non-output image.
  • the information of the first type of reference image set is located in a slice header of the second non-output image.
  • the configuration parameters of the short-term reference image used by the second non-output image include: an image sequence number of the short-term reference image used by the second non-output image is relative to An offset of an image sequence number of the second non-output image.
  • the code stream includes information for indicating a second type of reference image set used for encoding the image, and the second type of reference image set includes a long-term reference image.
  • the information of the second type of reference image set is located in a sequence header of the code stream, and the information of the second type of reference image set includes: a third non-output image Sequence number of the image, and the third non-output image is used as a long-term reference image of the image block of the image in the sequence corresponding to the sequence header.
  • information of the second type of reference image set is located in a slice header of a first slice of an image of the bitstream, and information of the second type of reference image set Including: a configuration parameter of a long-term reference image as an image block in the first strip.
  • the configuration parameters of the long-term reference image as the image block in the first strip include: the number of non-output images and an image sequence number of non-output images .
  • the configuration parameter of the long-term reference image serving as the image block in the first strip further includes: indicating whether the non-output image is used as the first The first identifier of the sliced long-term reference image.
  • the encoding module 310 is specifically configured to: when the first identifier indicates that a fourth non-output image in the non-output image is not used as the first band When the long-term reference image of the image block is deleted, the fourth non-output image is deleted from the reference image buffer.
  • the at least one non-output image of the code stream includes a fifth non-output image and a sixth non-output image, and the sixth non-output image is in the first
  • the coding is completed after the five non-output images; the coding module 310 is specifically configured to use the fifth non-output image as a long-term reference image, and the coding sequence is located after the first non-output image and located at the sixth non-output
  • the output image before the image is encoded.
  • the encoding device further includes a processing module 330, which may be further configured to construct the image block according to image blocks of multiple images that are located before the non-output image in encoding order. Output image.
  • a processing module 330 which may be further configured to construct the image block according to image blocks of multiple images that are located before the non-output image in encoding order. Output image.
  • the processing module 330 constructs the non-output image according to an image block of a plurality of images whose coding order is before the non-output image, including: based on the original image, according to Updating the image blocks of the original image by the plurality of images; when the number of the updated image blocks is greater than or equal to a preset threshold, the updated original image is used as the non-output image.
  • the original image is an intra prediction image.
  • the encoded data of the non-output image includes a second identifier for indicating that the non-output image is not output.
  • the non-output image includes at least one of the following: a long-term reference image, a structured frame, a short-term reference image, and a constructed long-term reference image.
  • FIG. 8 is a schematic block diagram of an encoding device 400 according to an embodiment of the present application.
  • the encoding device 400 shown in FIG. 8 may include a processor 410 and a memory 420.
  • the memory 420 stores computer instructions.
  • the processor 410 executes the computer instructions, the encoding device 400 causes the encoding device 400 to perform the following steps: Encode the to-be-encoded image to generate a code stream, the to-be-encoded image includes a non-output image and an output image, and the output image has a sequence order difference of any two output images adjacent to each other in a display order greater than 1, the output
  • the difference between the image sequence numbers of any two output images in the image is the same as the ratio of the shooting time interval of any two output images, and at least one of the image sequence numbers of the non-output images is displayed in two output adjacent to each other. Between image sequence numbers of the image; sending the code stream.
  • the encoding device 400 in the embodiment of the present application may further include a network interface for transmitting a code stream.
  • At least a part of the image sequence numbers of two output images adjacent to each other in order of display are different from each other in order.
  • a difference between image sequence numbers of any two output images adjacent to each other in the display order is two.
  • the processor 410 is further configured to execute the computer instructions, so that the encoding device 400 further executes the following before encoding the image to be encoded to generate a code stream: Step: Divide the to-be-encoded image into multiple image groups, where the image group is composed of separate intra-predicted images or multiple inter-predicted images.
  • the image to be encoded includes a first non-output image
  • the encoding order of the first non-output image is after the first image group and before the second image group.
  • the processor 410 executes computer instructions for encoding an image to be encoded to generate a code stream, so that the encoding device specifically performs the following steps: reference and the first image group
  • the short-term reference image used in the last image is the same short-term reference image, and the first non-output image is encoded.
  • the processor 410 executes computer instructions for encoding an image to be encoded to generate a code stream, so that the encoding device specifically performs the following steps: reference and the second image group
  • the first short-term reference picture used in the first picture is the same short-term reference picture, and the first non-output picture is encoded.
  • the to-be-encoded image includes a second non-output image
  • the code stream includes a first-type reference image used to instruct to encode the second non-output image.
  • Set of information, the first type of reference image set includes short-term reference images.
  • a sequence header of the bitstream includes a correspondence between a configuration parameter and an index of at least one frame of the short-term reference image; the information of the first type of reference image set includes: An index corresponding to a configuration parameter indicating a short-term reference image used by the second non-output image.
  • the information of the first type of reference image set includes: a configuration parameter for indicating a short-term reference image used by the second non-output image.
  • the information of the first type of reference image set is located in a slice header of the second non-output image.
  • the configuration parameters of the short-term reference image used by the second non-output image include: an image sequence number of the short-term reference image used by the second non-output image is relative to An offset of an image sequence number of the second non-output image.
  • the code stream includes information for indicating a second type of reference image set used for encoding the image, and the second type of reference image set includes a long-term reference image.
  • the information of the second type of reference image set is located in a sequence header of the code stream, and the information of the second type of reference image set includes: a third non-output image Sequence number of the image, and the third non-output image is used as a long-term reference image of the image block of the image in the sequence corresponding to the sequence header.
  • information of the second type of reference image set is located in a slice header of a first slice of an image of the bitstream, and information of the second type of reference image set Including: a configuration parameter of a long-term reference image as an image block in the first strip.
  • the configuration parameters of the long-term reference image as the image block in the first strip include: the number of non-output images and an image sequence number of non-output images .
  • the configuration parameter of the long-term reference image serving as the image block in the first strip further includes: indicating whether the non-output image is used as the first The first identifier of the sliced long-term reference image.
  • the processor 410 executes computer instructions for encoding an image to be encoded to generate a code stream, so that the encoding device 400 specifically performs the following steps: when the first identifier When instructing the fourth non-output image as the long-term reference image of the image block in the first band, the fourth non-output image is deleted from the reference image buffer.
  • the at least one non-output image of the code stream includes a fifth non-output image and a sixth non-output image, and the sixth non-output image is in the first
  • the encoding is completed after the image is not outputted; the processor 410 executes computer instructions for encoding the image to be encoded to generate a code stream, so that the encoding device 400 specifically performs the following steps: the fifth non-outputted image is used as a long-term reference image , Encoding the output image whose encoding order is after the first non-output image and before the sixth non-output image.
  • the processor 410 is further configured to execute the computer instructions, so that the encoding device 400 performs the following steps: An image block of an image that constructs the non-output image.
  • the processor 410 executes image blocks of a plurality of images that are located before the non-output image according to an encoding order, and constructs the non-output image, so that the encoding device 400 Specifically, the following steps are performed: based on the original image, updating the image blocks of the original image according to the multiple images; and when the number of the updated image blocks is greater than or equal to a preset threshold, the updated original image is used as the Output image.
  • the original image is an intra prediction image.
  • the encoded data of the non-output image includes a second identifier for indicating that the non-output image is not output.
  • the non-output image includes at least one of the following: a long-term reference image, a structured frame, a short-term reference image, and a constructed long-term reference image.
  • the encoding device 300 shown in FIG. 7 or the encoding device 400 shown in FIG. 8 may be used to execute the operation or process of the encoding device in the foregoing method embodiment, and each module and device in the encoding device 300 or the encoding device 400 The operations and / or functions are respectively implemented to implement the corresponding processes in the foregoing method embodiments, and are not repeated here for brevity.
  • FIG. 9 is a schematic block diagram of a decoding device 500 according to an embodiment of the present application.
  • the decoding device 500 includes: a receiving module 510, configured to receive a code stream, where the code stream includes data to be decoded without outputting an image and an output image, and the output image displays an image of any two output images adjacent to each other in sequence.
  • the difference between the sequence numbers is greater than 1, the difference between the image sequence numbers of any two output images in the output images is the same as the ratio of the shooting time interval of the two arbitrary output images, and at least one of the image sequences of the non-output images
  • the sequence number is between the image sequence numbers of two output images adjacent in the display order; the decoding module 520 is configured to decode the code stream received by the receiving module 510.
  • the decoding device in this embodiment of the present application does not output images in the bitstream.
  • the difference between the POCs of any two output images adjacent to each other in the display order in the output image greater than 1, and the two adjacent output images on the POC
  • At least a part of the image sequence numbers of two output images adjacent to each other in order of display are different from each other in order.
  • a difference between image sequence numbers of any two output images adjacent to each other in the display order is two.
  • the to-be-encoded image includes a second non-output image
  • the code stream includes a first-type reference image used to instruct to encode the second non-output image.
  • Set of information, the first type of reference image set includes short-term reference images.
  • a sequence header of the bitstream includes a correspondence between a configuration parameter and an index of at least one frame of the short-term reference image; the information of the first type of reference image set includes: An index corresponding to a configuration parameter indicating a short-term reference image used by the second non-output image.
  • the information of the first type of reference image set includes: a configuration parameter for indicating a short-term reference image used by the second non-output image.
  • the information of the first type of reference image set is located in a slice header of the second non-output image.
  • the configuration parameters of the short-term reference image used by the second non-output image include: an image sequence number of the short-term reference image used by the second non-output image is relative to An offset of an image sequence number of the second non-output image.
  • the code stream includes information for indicating a second type of reference image set used for encoding the image, and the second type of reference image set includes a long-term reference image.
  • the information of the second type of reference image set is located in a sequence header of the code stream, and the information of the second type of reference image set includes: a third non-output image Sequence number of the image, and the third non-output image is used as a long-term reference image of the image block of the image in the sequence corresponding to the sequence header.
  • information of the second type of reference image set is located in a slice header of a first slice of an image of the bitstream, and information of the second type of reference image set Including: a configuration parameter of a long-term reference image as an image block in the first strip.
  • the configuration parameters of the long-term reference image as the image block in the first strip include: the number of non-output images and an image sequence number of non-output images .
  • the configuration parameter of the long-term reference image serving as the image block in the first strip further includes: indicating whether the non-output image is used as the first The first identifier of the sliced long-term reference image.
  • the decoding module 520 is specifically configured to, when the first identifier indicates that a fourth non-output image in the non-output image is not used as an image in the first band When the long-term reference image is blocked, the fourth non-output image is deleted from the reference image buffer.
  • the at least one non-output image of the code stream includes a fifth non-output image and a sixth non-output image, and the sixth non-output image is in the first
  • the decoding is completed after five non-output images; the decoding module 520 is specifically configured to: use the fifth non-output image as a long-term reference image, and the decoding order is after the first non-output image and before the sixth non-output image The output image is decoded.
  • the encoded data of the non-output image includes a second identifier for indicating that the non-output image is not output.
  • the non-output image includes at least one of the following: a long-term reference image, a structured frame, a short-term reference image, and a constructed long-term reference image.
  • FIG. 10 is a schematic block diagram of a decoding device 600 according to an embodiment of the present application.
  • the decoding device 600 shown in FIG. 10 may include a processor 610 and a memory 620.
  • the memory 620 stores computer instructions.
  • the decoding device 600 causes the decoding device 600 to perform the following steps: Receive a code stream, where the code stream includes data that is not to be output and output data to be decoded, and the difference between the image sequence numbers of any two output images adjacent to each other in display order in the output image is greater than 1,
  • the difference between the image sequence numbers of any two output images is the same as the ratio of the shooting time interval of any two output images, and at least one of the image sequence numbers of the non-output images is in the display order of two adjacent output images.
  • decoding the code stream is the same as the ratio of the shooting time interval of any two output images, and at least one of the image sequence numbers of the non-output images is in the display order of two adjacent output images.
  • the decoding device 600 in the embodiment of the present application may further include a network interface for transmitting a code stream.
  • At least a part of the image sequence numbers of two output images adjacent to each other in order of display are different from each other in order.
  • a difference between image sequence numbers of any two output images adjacent to each other in the display order is two.
  • the to-be-encoded image includes a second non-output image
  • the code stream includes a first-type reference image used to instruct to encode the second non-output image.
  • Set of information, the first type of reference image set includes short-term reference images.
  • a sequence header of the bitstream includes a correspondence between a configuration parameter and an index of at least one frame of the short-term reference image; the information of the first type of reference image set includes: An index corresponding to a configuration parameter indicating a short-term reference image used by the second non-output image.
  • the information of the first type of reference image set includes: a configuration parameter for indicating a short-term reference image used by the second non-output image.
  • the information of the first type of reference image set is located in a slice header of the second non-output image.
  • the configuration parameters of the short-term reference image used by the second non-output image include: an image sequence number of the short-term reference image used by the second non-output image is relative to An offset of an image sequence number of the second non-output image.
  • the code stream includes information for indicating a second type of reference image set used for encoding the image, and the second type of reference image set includes a long-term reference image.
  • the information of the second type of reference image set is located in a sequence header of the code stream, and the information of the second type of reference image set includes: a third non-output image Sequence number of the image, and the third non-output image is used as a long-term reference image of the image block of the image in the sequence corresponding to the sequence header.
  • information of the second type of reference image set is located in a slice header of a first slice of an image of the bitstream, and information of the second type of reference image set Including: a configuration parameter of a long-term reference image as an image block in the first strip.
  • the configuration parameters of the long-term reference image as the image block in the first strip include: the number of non-output images and an image sequence number of non-output images .
  • the configuration parameter of the long-term reference image serving as the image block in the first strip further includes: indicating whether the non-output image is used as the first The first identifier of the sliced long-term reference image.
  • the processor 610 executes computer instructions for decoding the code stream, so that the decoding device 600 specifically performs the following steps: when the first identifier indicates When the fourth non-output image is not used as a long-term reference image of the image block in the first band, the fourth non-output image is deleted from the reference image buffer.
  • the at least one non-output image of the code stream includes a fifth non-output image and a sixth non-output image, and the sixth non-output image is in the first Decoding is completed after no image is output; the processor 610 executes computer instructions for decoding the code stream, so that the decoding device 600 specifically performs the following steps: using the fifth non-output image as a long-term reference image, and treating The decoding order is decoding the output image that is located after the first non-output image and before the sixth non-output image.
  • the encoded data of the non-output image includes a second identifier for indicating that the non-output image is not output.
  • the non-output image includes at least one of the following: a long-term reference image, a structured frame, a short-term reference image, and a constructed long-term reference image.
  • decoding device 500 shown in FIG. 9 or the decoding device 600 shown in FIG. 10 may be used to perform operations or processes of the decoding device in the foregoing method embodiment, and each module and device in the decoding device 500 or the decoding device 600 The operations and / or functions are respectively implemented to implement the corresponding processes in the foregoing method embodiments, and are not repeated here for brevity.
  • the devices of the embodiments of the present application may be implemented based on a memory and a processor.
  • Each memory is used to store instructions for executing the methods of the embodiments of the present application.
  • the processor executes the foregoing instructions, so that the device executes the embodiments of the present application. Methods.
  • processors mentioned in the embodiments of the present application may include a central processing unit (CPU), a network processor (NP), or a combination of a CPU and an NP.
  • the processor may further include a hardware chip.
  • the hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof.
  • the PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a general array logic (GAL), or any combination thereof.
  • the memory mentioned in the embodiments of the present application may be volatile memory (non-volatile memory) or non-volatile memory (non-volatile memory), or may include both volatile and non-volatile memory .
  • the non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrical memory Erase programmable read-only memory (electrically EPROM, EEPROM), flash memory (flash memory), hard disk (hard disk drive) (HDD) or solid-state hard disk (solid-state drive (SSD)).
  • the volatile memory may be a random access memory (RAM), which is used as an external cache.
  • RAM random access memory
  • DRAM dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • double SDRAM double SDRAM
  • DDR SDRAM double data rate synchronous dynamic random access memory
  • enhanced SDRAM enhanced SDRAM
  • SLDRAM synchronous connection dynamic random access memory
  • direct RAMbus RAM direct RAMbus RAM
  • the processor is a general-purpose processor, a DSP, an ASIC, an FPGA, or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component
  • the memory memory module
  • memory described herein is intended to include, but is not limited to, these and any other suitable types of memory.
  • An embodiment of the present application further provides a computer-readable storage medium that stores instructions thereon.
  • the instructions When the instructions are run on a computer, the computer is caused to execute the steps performed by the encoding device in the foregoing method embodiment.
  • An embodiment of the present application further provides a computer-readable storage medium that stores instructions thereon, and when the instructions are run on a computer, the computer is caused to execute the steps performed by the decoding device in the foregoing method embodiment.
  • An embodiment of the present application further provides a computing device, where the computing device includes the computer-readable storage medium described above.
  • An embodiment of the present application further provides a computer program product including instructions, characterized in that when a computer runs the finger of the computer program product, the computer executes the steps performed by the encoding device in the foregoing method embodiment.
  • An embodiment of the present application further provides a computer program product including instructions, characterized in that, when a computer runs the finger of the computer program product, the computer executes the steps performed by the decoding device in the foregoing method embodiment.
  • An embodiment of the present application further provides a computer chip that enables a computer to execute the steps performed by the encoding device in the foregoing method embodiment.
  • An embodiment of the present application further provides a computer chip that enables a computer to execute the steps performed by the decoding device in the foregoing method embodiment.
  • the embodiments of the present application can be applied in the field of aircraft, especially in the field of drones.
  • circuits, sub-circuits, and sub-units in the embodiments of the present application is merely schematic. Those of ordinary skill in the art may realize that the circuits, sub-circuits, and sub-units of the various examples described in the embodiments disclosed herein can be further split or combined.
  • the devices provided in the embodiments of the present application may be implemented in whole or in part by software, hardware, firmware, or any combination thereof.
  • software When implemented in software, it may be implemented in whole or in part in the form of a computer program product.
  • the computer program product includes one or more computer instructions.
  • the computer instructions When the computer instructions are loaded and executed on a computer, the processes or functions according to the embodiments of the present application are generated in whole or in part.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be from a website site, computer, server, or data center Transmission by wire (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) to another website site, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, a data center, and the like that includes one or more available medium integration.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a high-density digital video disc (DVD)), or a semiconductor medium (for example, an SSD).
  • a magnetic medium for example, a floppy disk, a hard disk, a magnetic tape
  • an optical medium for example, a high-density digital video disc (DVD)
  • DVD high-density digital video disc
  • semiconductor medium for example, an SSD
  • the size of the serial numbers of the above processes does not mean the order of execution.
  • the execution order of each process should be determined by its function and internal logic, and should not deal with the implementation process of the embodiment of the present application. Constitute any limitation.
  • the disclosed systems, devices, and methods may be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the division of the unit is only a logical function division.
  • multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, which may be electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, may be located in one place, or may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objective of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each of the units may exist separately physically, or two or more units may be integrated into one unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种编码方法(100)、解码方法、编码设备和解码设备,该编码方法(100)包括:对待编码图像进行编码以生成码流,该待编码图像包括不输出图像和输出图像,该输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,该输出图像中的任意两个输出图像的图像顺序序号的差与该任意两个输出图像的拍摄时间间隔的比值相同,至少一个该不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间(S110);发送该码流(S120)。编码方法(100)使得不输出图像可以在不影响输出图像的POC的时间相关性的情况下,被插入输出图像中,能够避免编码时出现运动矢量预测错误及缩放失效等问题。

Description

编码方法、解码方法、编码设备和解码设备
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本申请涉及视频编解码领域,尤其涉及一种编码方法、解码方法、编码设备和解码设备。
背景技术
在现有的一些视频编解码技术中,编码设备会对一些特定图像进行编码并将其在码流中进行传输。这些特定图像被解码设备解码,并用于作为参考图像或作为其它参考,其不被解码设备输出。本文中将这些特定图像称为不输出图像。
现有的视频编解码技术通常不在码流中对不输出图像进行编码,而是在编码设备和解码设备两端分别构造不输出图像。在解码设备构造不输出图像会造成解码设备的处理较为复杂,因此在另外一些视频编解码技术中,编码设备编码时在输出图像中插入不输出图像,然后将所有图像进行图像顺序序号(picture order count,POC)的连续编码。然而,不输出图像的随意插入会导致输出图像的POC的时间相关性被破坏,从而可能会引起编码或解码时运动矢量预测错误及缩放失效等问题。
发明内容
本申请提供了一种编码方法、解码方法、编码设备和解码设备,能够避免编码时出现运动矢量预测错误及缩放失效等问题。
第一方面,提供了一种编码方法,包括:对待编码图像进行编码以生成码流,所述待编码图像包括不输出图像和输出图像,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的 任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;发送所述码流。
第二方面,提供了一种解码方法,包括:接收码流,所述码流中包括不输出图像和输出图像的待解码数据,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;对所述码流进行解码。
第三方面,提供了一种编码设备,所述编码设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器执行所述计算机指令时,使得所述编码设备执行以下步骤:对待编码图像进行编码以生成码流,所述待编码图像包括不输出图像和输出图像,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;发送所述码流。
第四方面,提供了一种解码设备,所述解码设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器执行所述计算机指令时,使得所述解码设备执行以下步骤:接收码流,所述码流中包括不输出图像和输出图像的待解码数据,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;对所述码流进行解码。
第五方面,提供了一种计算机可读存储介质,其上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行第一方面所述的方法。
第六方面,提供了一种计算机可读存储介质,其上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行第二方面所述的方法。
第七方面,提供了一种计算机程序,该计算机程序使得计算机执行第一方面的方法。
第八方面,提供了一种计算机程序,该计算机程序使得计算机执行第二方面的方法。
本申请各方面,将不输出图像编入码流中,通过使得输出图像中显示顺序相邻的任意两个输出图像的POC的差大于1,输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,并且POC上相邻的两个输出图像的POC之间可以存在不输出图像的POC,这样使得不输出图像可以在不影响输出图像的POC的时间相关性的情况下,被插入输出图像中,能够避免编码时出现运动矢量预测错误及缩放失效等问题。
附图说明
图1是本申请一个实施例提供的编码方法的示意性流程图。
图2是本申请一个实施例提供的GOP中图像的参考关系的示意图。
图3是本申请另一个实施例提供的GOP中图像的参考关系的示意图。
图4是本申请又一个实施例提供的GOP中图像的参考关系的示意图。
图5是本申请又一个实施例提供的GOP中图像的参考关系的示意图。
图6是本申请一个实施例提供的解码方法的示意性流程图。
图7是本申请一个实施例提供的编码设备的示意性框图。
图8是本申请另一个实施例提供的编码设备的示意性框图。
图9是本申请一个实施例提供的解码设备的示意性框图。
图10是本申请另一个实施例提供的解码设备的示意性框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
首先介绍本申请实施例涉及的相关技术及概念。
近年来,由于便携式设备、手持式设备以及可穿戴设备的盛行,视频的内容量不断增长。随着视频形式变得越来越复杂,视频的存储和传输变得越来越具有挑战性。为了减少视频存储和传输所占用的带宽,通常在编码端对 视频数据进行编码压缩,在解码端进行解码。
编码压缩过程包括预测、变换、量化和熵编码等处理。其中,预测包括帧内预测和帧间预测两种类型,其目的在于利用预测块数据去除当前待编码图像块的冗余信息。帧内预测利用本帧图像的信息获得预测块数据。帧间预测利用参考图像的信息获得预测块数据,其过程包括将当前待编码图像划分成若干个待编码图像块,再针对待编码图像块进行至少一次的划分(例如利用HEVC标准中的四叉树划分方法,或者利用四叉树二叉树划分方法),划分成若干个图像块;然后,针对每个子图像块,在参考图像中搜索与当前子图像块最匹配的图像块作为预测图像块,预测图像块与当前子图像块的相对位移即为运动矢量;其后,将该子图像块与预测图像块的相应像素值相减得到残差。将得到的各子图像块对应的残差组合在一起,得到待编码图像块的残差。残差经过变换、量化和熵编码等处理后得到熵编码比特流,将熵编码比特流及进行编码后的编码模式信息,例如帧内预测模式、运动矢量(或运动矢量残差)等信息,进行存储或发送到解码端。
在图像的解码端,获得熵编码比特流后进行熵解码,得到相应的残差;根据解码得到的运动矢量、帧内预测等信息找到待解码图像块对应的预测图像块;根据预测图像块与残差得到待解码图像块中各像素点的值。
通过以上说明可知,在进行帧间预测时,选取的参考图像与当前待编码图像越相似则帧间预测产生的残差越小,从而可以提升帧间预测的编码效率。具体地,现有的一些技术可以利用视频中的各图像构建一个包含场景的背景内容的高质量的长期参考图像。在进行帧间预测时当前待编码图像或当前待解码图像的背景部分可通过参考所述的高质量的长期参考图像用于减少帧间预测的残差信息,从而提高编码效率。也即,该长期参考图像是作为帧间预测的参考图像。在一个实施例中,长期参考图像是一个已编/解码的图像,例如是一个已编/解码的I帧。在一个实施例中,长期参考图像是一个构造的图像。长期参考图像中包括多个图像块,任意一个图像块均是从某个已编/解码图像中取出的,长期参考图像中的不同图像块可能取自于不同的已编/解码图像。
视频是由多个图像构成的。如前文中描述地,对视频进行编/解码时,视频中不同的图像可采用不同的预测方式。根据图像所采用的预测方式,可以将图像区分为帧内预测图像和帧间预测图像,其中帧间预测图像包括前向预 测图像和双向预测图像。I图像是帧内预测图像,也称为关键帧;P图像是前向预测图像,也即采用之前已编/解码的一个P图像或者I图像作为参考图像;B图像是双向预测图像,也即采用前后的图像作为参考图像。
一种实现方式是编/解码端将多张图像进行编/解码后产生一段一段的图像组(group of picture,GOP)。在一种可选的方式中,GOP是由一张I图像,以及多张B图像(或双向预测图像)和/或P图像(或前向预测图像)构成的图像组。在另一种可选的方式中,GOP由单独的帧内预测图像组成;或者GOP由多个帧间预测图像组成,例如GOP由多个B图像和/或P图像组成。解码端在播放时则是读取一段一段的GOP进行解码后读取画面再渲染显示。
在现代视频编/解码标准中,可以通过将图像分成多个小块来对不同分辨率的图像进行编/解码,即图像可以被分成多个图像块。图像可以被分成任何数量的图像块。例如,该图像可以被分成一个m×n图像块阵列。图像块可以具有矩形形状、正方形形状、圆形形状或任何其他形状。图像块可以具有任何尺寸,例如p×q像素。每个图像块都可以具有相同尺寸和/或形状。可替代地,两个或更多图像块可以具有不同的尺寸和/或形状。图像块可以具有或者可以不具有任何重叠部分。在一些实施例中,该图像块在一些编/解码标准中被称为宏块或最大编码单元(largest coding unit,LCU)。对于H.264标准,该图像块被称为宏块,其大小可以是16×16像素。对于高效率视频编码(High Efficiency Video Coding,HEVC)标准,图像块被称为编码树单元(Coding Tree Unit,CTU),其大小可以是8×8像素~64×64像素。
在另一些实施例中,一个图像块也可以不是一个宏块或编码树单元,而是包含一个宏块或编码树单元的部分,或者包含至少两个完整的宏块(或编码树单元),或者包含至少一个完整的宏块(或编码树单元)和一个宏块(或编码树单元)的部分,或者包含至少两个完整的宏块(或编码树单元)和一些宏块(或编码树单元)的部分。如此,在图像被分成多个图像块之后,可以分别对图像数据中的这些图像块进行编/解码。
在另一些实施例中,一个图像块可以指的是一个宏块或编码树单元的部分。例如,一个图像块可以指的是在一些视频编/解码标准中的编码单元(Coding Unit,CU)。
上述长期参考图像是不输出图像的一个具体举例。在一些实现方式中,不输出图像可以具有以下至少一种性质:构造帧(composite reference)、长 期参考图像、短期参考图像、构造的长期参考图像。在一些实现方式中,构造帧也被称为合成参考帧。在另一些实现方式中,该不输出图像可以包括除构造帧以外的图像,或者包括除长期参考图像以外的图像,或者包括除构造的长期参考图像以外的图像等等。其中,该不被输出的图像,指的是不被输出显示的图像;一般来说,该不被输出的图像是作为其他图像的参考图像存在的。
在一些实现方式中,视频中的图像可作为参考图像时,可以区分长期参考图像和短期参考图像的。其中,该短期参考图像是与长期参考图像相对应的一个概念。短期参考图像存在于参考图像缓冲区中一段时间,经过该短期参考图像之后的已解码的参考图像在参考图像缓冲区中的若干移入和移出操作之后,短期参考图像会被移出参考图像缓冲区。参考图像缓冲区也可以称为参考图像列表缓存、参考图像列表、参考帧列表缓存或参考帧列表等,本文中将其统称为参考图像缓冲区。
长期参考图像(或长期参考图像中的一部分数据)可以一直存在于参考图像缓冲区中,该长期参考图像(或长期参考图像中的一部分数据)不受已解码的参考图像在参考图像缓冲区中的移入和移出操作的影响,只有在解码端发出更新指令操作时该长期参考图像(或长期参考图像中的一部分数据)才会被移出参考图像缓冲区。
短期参考图像和长期参考图像在不同的标准中的叫法可能不同,例如,在H.264/高级视频编码(advanced video coding,AVC)或者H.265/HEVC等标准中短期参考图像被称为短期参考帧(short-term reference),长期参考图像被称为长期参考帧(long-term reference)。又如在信源编码标准(audio video coding standard,AVS)1-P2、AVS2-P2、电气和电子工程师协会(institute of electrical and electronics engineers,IEEE)1857.9-P4等标准中,长期参考图像被称为背景帧(background picture)。又如在VP8、VP9等标准中,长期参考图像被称为黄金帧(golden frame)。
应理解,本申请实施例中采用特定了术语,并不代表必须应用到特定场景下,例如,将长期参考图像称为长期参考帧并不代表必须用到H.264/AVC或者H.265/HEVC等标准对应的技术中。
以上提到的长期参考图像可以是从多个已编/解码图像中取出的图像块构造得到的,或者利用多个已编/解码图像对已有参考帧(例如,预存的参考 帧)进行更新得到。一种可能的构造方式为,在编码完随机访问点的图像(I图像)时,将构造帧初始化为该随机访问点的图像,在编码下一个随机访问点之前的任一图像时,使用当前图像与前一帧图像逐块进行比较,当当前图像的图像块与前一帧图像对应位置的图像块相似的时候,则认为是背景的一部分,将构造帧对应位置使用这个块替代。当构造帧中被替换掉的块达到一定比例时,认为该构造帧已经构造完成。将该构造帧作为长期参考图像。当然,本申请其他实现方式中,长期参考图像也可以不是构造的参考图像。
可选地,图像的类型可以在码流结构中通过特殊字段标识出来。
可选地,在确定图像为长期参考图像时,确定该图像为不输出图像;或,在确定图像为构造帧时,确定该图像为不输出图像。
可选地,不输出图像和输出图像都可以具有相应的标识,此时对于解码端而言,可以依据图像所具有的标识来确定该图像是不输出图像还是输出图像。
在一些实现方式中,在确定图像具有长期参考图像的标识时,确定该图像为不输出图像。
在一些实现方式中,在确定图像具有不被输出的标识时,确定该图像为不输出图像。
在一些实现方式中,在确定图像具有构造帧的标识时,确定该图像为不输出图像。
可选地,上述各种标识可以包含在序列头、图像头(picture header)、图像参数集(picture parameter set,PPS)、条带头(slice header)中,以确定图像是否为不输出图像。
在本申请各实施例中,一帧图像可以划分为至少一个条带(slice),每个条带包含一组编码单元。每个条带可以独立编码、解码或重建。编/解码中使用到的参考图像等信息可以在条带头进行编码。
在编/解码设备中,为了便于区分或者索引每个编/解码的图像,会对每个图像进行编号。例如,当前的HEVC等标准中对图像按照显示顺序编号,在索引参考图像或者计算图像距离时,均使用显示顺序的编号进行运算。
在HEVC等标准中,对参考图像的管理采用称为参考图像集(reference pictures set,RPS)的概念。RPS配置参数对编码使用的参考图像进行标识,该参考图像可以包括短期参考图像和/或长期参考图像。通过RPS信息指示 RPS配置参数,可以知道编/解码当前图像需要使用哪些图像作为参考图像。在一些可能的实现方式中,可以知道参考图像缓冲区中哪些图像不再被参考使用。对于不同的条带,可以有不同的RPS配置参数以灵活选择参考图像。RPS信息可以编码在每个条带的开头,即条带头处;RPS信息还可以编码在序列头、图像头、PPS中。应理解,图像头中可以包括整个图像的参数。为简化图像头的编码,之后的图像如果图像头没有太大变化可以用PPS中的index来标识。如果图像划分有条带,RPS信息通常不位于图像头中,而是位于条带头中。
例如,短期参考图像的RPS配置参数需要标注出的参考图像的信息有:当前图像有多少个短期参考图像,每个短期参考图像相对于当前图像的顺序序号(POC)的偏移是多少,所有的短期参考图像中哪些是当前图像可以使用的等。一个典型的低延迟(lowdelay)-B编码中短期参考图像的RPS配置参数可以如表1所示。
表1 lowdelay B编码中短期参考图像的RPS配置参数
index type POC ref_pics_active ref_pics reference_pictures predict deltaRPS refidcs_ reference idcs
1 B 1 4 4 -1-5-9-13 0      
2 B 2 4 4 -1-2-6-10 1 -1 5 11101
3 B 3 4 4 -1-3-7-11 1 -1 5 01111
4 B 4 4 4 -1-4-8-12 1 -1 5 01111
其中,index表示短期参考图像的RPS配置参数的索引。type表示编码方式,B是指采用双向预测的编码方式。POC是指该RPS配置参数所适用的图像在GOP中的位置。ref_pics_active表示该RPS配置参数所适用的可以使用的短期参考图像的总数量。ref_pics表示参考图像缓冲区中的短期参考图像的数量。reference_pictures表示参考图像缓冲区中的短期参考图像相对于当前图像的的POC偏移。在编码RPS配置参数时,可以采用两种方式,分别是直接编码和预测编码。直接编码是将所有需要编码的元素直接写入码流。预测编码则是采用使用已经编码的RPS配置参数来简化编码元素。如表1的RPS配置参数的predict就表示采用何种方式来编码RPS配置参数。index1的RPS配置参数中predict为0,表示index1的RPS配置参数采用直接编码的方式;index2-4的RPS配置参数中predict为1,表示index2-4的RPS配置参数采用预测编码的方式。预测编码的方式具体可以如下:deltaRPS 表示该RPS配置参数与参考的RPS配置参数在reference_pictures上的偏差。例如deltaRPS值为-1,则在预测时用参考的reference_pictures的POC加上-1即得到该RPS配置参数的reference_pictures。ref_idcs表示需要用多少个reference_pictures的POC做参考,对应的具体图像列在了reference idcs中。例如,此处index2的RPS配置参数的reference idcs为1 1 1 0 1,其含义是,需要用被参考的RPS配置参数(index1的RPS配置参数)的reference_pictures的第1、2、3、5个值来做参考(index1的RPS配置参数中不存在的reference_pictures,例如第5个reference_pictures的POC认为是0)。因此,index2的RPS配置参数使用相对于index1的RPS配置参数的-1、-5、-9、0来做参考,加上deltaRPS之后,得到-2、-6、-10、-1这4个reference_pictures的值,排序之后得到-1、-2、-6、-10,即为表1中index2的RPS配置参数的reference_pictures。同理,index3的RPS配置参数中reference idcs为0 1 11 1,用index2的RPS配置参数对应的reference_pictures-2、-6、-10、0加上deltaRPS,得到-3、-7、-11、-1,排序之后得到index3的RPS配置参数的reference_pictures的值-1、-3、-7、-11。index4的RPS配置参数同理,此处不再赘述。
上述表1仅是对采用现有的POC配置方法的短期参考图像的RPS配置参数的一个示例性说明。应理解,短期参考图像的RPS配置可以有其他的形式,而不局限于上表的格式和内容。本申请中的短期参考图像的RPS配置和长期参考图像的RPS配置将继续在下文中详细说明。
图1是本申请一个实施例提供的编码方法100的示意性流程图。如图1所示,编码方法100可以包括以下步骤。
S110,对待编码图像进行编码以生成码流,该待编码图像包括不输出图像和输出图像,该输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号(POC)的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个该不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间。
S120,发送该码流。
本申请实施例的编码方法,将不输出图像编入码流中,通过使得输出图像中显示顺序相邻的任意两个输出图像的POC的差大于1,输出图像中的任 意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,并且POC上相邻的两个输出图像的POC之间可以存在不输出图像的POC,这样使得不输出图像可以在不影响输出图像的POC的时间相关性的情况下,被插入输出图像中,能够避免编码时出现运动矢量预测错误及缩放失效等问题。
本申请各实施例中,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同是指:所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值是成比例的。换而言之,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值,与另外任意两个输出图像的图像顺序序号的差与所述另外任意两个输出图像的拍摄时间间隔的比值相等。
下面对“任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值是成比例的”进行详细的说明。对于输出图像中的两帧,例如输出图像A和输出图像B,假设输出图像A的图像顺序序号为POC A,拍摄时间为t A;假设输出图像B的图像顺序序号为POC B,拍摄时间为t B。输出图像A和输出图像B的图像顺序序号的差为POC B-POC A。输出图像A和输出图像B的拍摄时间间隔为t B-t A。对于输出图像中的两帧,例如输出图像C和输出图像D,假设输出图像C的图像顺序序号为POC C,拍摄时间为t C;假设输出图像D的图像顺序序号为POC D,拍摄时间为t D。输出图像C和输出图像D的图像顺序序号的差为POC D-POC C。输出图像C和输出图像D的拍摄时间间隔为t D-t C。任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值是成比例的是指:POC B-POC A与t B-t A的比值和POC D-POC C与t D-t C的比值相等。其中,输出图像C和输出图像D中最多有一帧与输出图像A或输出图像B相同。
应理解,本申请实施例中,保证任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值是成比例的,可以保证多个输出图像的POC能够反映拍摄时间的时间特性,从而使得基于POC预测的运动矢量或基于POC进行的缩放操作的正确性。
在一些实现方式中,在输出图像中,至少部分显示顺序相邻的两个输出图像的图像顺序序号的差相等。
可选地,在本申请的一些实施例中,可以基于图像的拍摄顺序乘以一定的倍数来确定图像顺序序号,即POC。假设输出图像的原本的拍摄顺序为0,1,2,3……。在本申请的一些实施例中,输出图像的POC可以是原本的拍摄顺序的倍数,例如可以为0,2,4,6……,或者可以为0,3,6,9……等;输出图像的POC可以是原本的拍摄顺序的倍数加减一个常数,例如可以为1,3,5,7……,或者可以为-1,2,5,8……等。由此,输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差是相等并且大于1的,这保证了输出图像的显示顺序保持不变,并且本申请实施例不改变输出图像的编码顺序。任意两个输出图像满足图像顺序序号上的距离相对于显示顺序上的距离成比例增长,这不会影响运动矢量预测和缩放等操作。
应理解,在一些应用场景中,输出图像原本的显示顺序不一定是等距的,例如,输出图像的原本的拍摄顺序为0,1,2,3,4,5,6,7,8……,中间的图像3和图像6因为一些原因(例如比较卡)被丢弃掉了,变为0,1,2,4,5,7,8……。在本申请的一些实施例中,输出图像的POC可以是原本的拍摄顺序的倍数,例如可以为0,2,4,8,10,14,16……。在其他一些应用场景中,输出图像原本的显示顺序有可能有其他的表现形式。本申请实施例中,输出图像的POC也可以具有其他的表现形式,本申请实施例对此不作限定。
在本申请的一些实施例中,典型地,显示顺序相邻的任意两个输出图像的图像顺序序号的差可以是2。例如,输出图像的POC的序列为为0,2,4,6……或者为1,3,5,7……。
可选地,在本申请的一些实施例中,可以有至少一个(即一个或多个)不输出图像的图像顺序序号是位于显示顺序相邻的两个输出图像的图像顺序序号之间的。换而言之,POC上相邻的两个输出图像的POC之间可以存在一个或多个不输出图像的POC。由此,不输出图像的POC不会影响任意两帧输出图像的POC间的距离。不输出图像的存在不会影响任意两帧输出图像的运动矢量预测和缩放等操作所参考的距离。
POC上相邻的某两个输出图像的POC之间可以存在不输出图像,也可以不存在不输出图像,但整个码流上存在至少一个不输出图像,即至少有两个输出图像的POC之间存在不输出图像。POC上相邻的任意两个输出图像的POC之间存在的不输出图像的POC的个数可以相同也可以不同。
一个具体的例子中,在输出图像的POC的序列1,3,5,7……中,例如POC=3的图像和POC=5的图像之间可以存在POC=4的图像,该POC=4的图像为不输出图像。POC=5的图像和POC=7的图像之间可以存在不输出图像也可以不存在不输出图像。
另一个具体的例子中,在输出图像的POC的序列0,3,6,9……中,例如POC=3的图像和POC=6的图像之间可以存在POC=4的图像和POC=5的图像;POC=6的图像和POC=9的图像之间可以存在POC=7的图像。该POC=4的图像、POC=5的图像和POC=7的图像为不输出图像。
应理解,本文中前面列举的以及下文中将列举的输出图像的POC的序列仅是示例性的,而非对本申请实施例的限定。例如输出图像的POC的最小编号可以不从0开始或者不从1开始等,本申请对POC的具体形式不作限定。
可选地,在本申请的一些实施例中,在S110对待编码图像进行编码以生成码流之前,所述编码方法100还可以包括:将所述待编码图像划分为多个图像组,所述图像组由单独的帧内预测图像组成,或者由多个帧间预测图像组成。
例如,在本申请实施例使用的一个lowdelay-B结构中,待编码图像的序列为I0,B2,B4,B6,B8,B10,B12,B14,B16,B17,B18……,其中B17为不输出图像,其他为输出图像。可以将I图像即I0划分为一个GOP,之后的每四个输出图像为一个GOP,例如,B2,B4,B6,B8为一个GOP,B10,B12,B14,B16为一个GOP。
图2是本申请一个实施例提供的GOP中图像的参考关系(即参考的短期参考图像)的示意图。其中GOP中每一帧图像帧间预测都会使用当前图像的前一帧图像以及前面连续几个GOP中最后一帧图像作为短期参考图像。每一帧图像的短期参考图像的总数不超过4帧。例如,B16使用的短期参考图像有B14(当前图像的前一帧图像),以及B8和I0(前面连续几个GOP的最后一帧图像)。以此类推,图像B28使用的短期参考图像有B26(当前图像的前一帧图像),以及B24、B16、B8(前面连续3个GOP的最后一帧图像,且短期参考图像的总数不超过4)。
再如,在本申请实施例使用的一种层次的编码结构中,待编码图像的序列为I0,P16,B8,B4,B2,B6,B12,B10,B14,B17,P32,B24,B20, B18,B22,B28,B26,B30……,其中B17为不输出图像,其他为输出图像。可以将I图像即I0划分为一个GOP,之后的每八个输出图像为一个GOP,例如,P16,B8,B4,B2,B6,B12,B10,B14为一个GOP,P32,B24,B20,B18,B22,B28,B26,B30为一个GOP。
可选地,在本申请的一些实施例中,待编码图像包括第一不输出图像。或者说,待编码图像的至少一个不输出图像中包括第一不输出图像。第一不输出图像的编码顺序在第一图像组之后且在第二图像组之前。应理解,第一图像组和第二图像组可以是在编码顺序上连续的两个输出图像的GOP。这样有利于不扰乱每个GOP中图像的参考关系,提高编码效率。例如,在上述的前一个例子中,不输出图像B17在B10,B12,B14,B16组成的GOP之后,在B18……组成的GOP之前编码。再如,在上述的后一个例子中,不输出图像B17在P16,B8,B4,B2,B6,B12,B10,B14组成的GOP之后,在P32,B24,B20,B18,B22,B28,B26,B30组成的GOP之前编码。当然,第一不输出图像的编码顺序也可以不考虑GOP的划分,而是在适合的两帧输出图像之间编码,或者第一不输出图像可以在任意两帧输出图像之间编码,本申请实施例对此不作限定。
应理解,由于本申请实施例中输出图像的图像顺序序号相对于现有的编号方式有变化,相应地对图像进行编码时所使用的参考图像集配置参数,例如RPS配置参数也相应进行调整。本申请一些实施例中,RPS配置参数相对表1可以变化为表2的内容。
表2本申请实施例的lowdelay B编码中短期参考图像的RPS配置参数
index type POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs
1 B 2 4 4 -2-10-18-26 0      
2 B 4 4 4 -2-4-12-20 1 -2 5 11101
3 B 6 4 4 -2-6-14-22 1 -2 5 01111
4 B 8 4 4 -2-8-16-24 1 -2 5 01111
可选地,在本申请一些实施例中,编码不输出图像可以采用与输出图像类似的编码方式,例如编码不输出图像可以使用帧间预测的编码方式。编码不输出图像所使用到的短期参考图像可以为已经编码过的图像。
可选地,在一种实现方式中,S110对待编码图像进行编码以生成码流,可以包括:参考与所述第一图像组中的最后一个图像所使用的短期参考图像 相同的短期参考图像,对所述第一不输出图像进行编码。即第一不输出图像所参考的短期参考图像,与编码顺序与该第一不输出图像相邻且在该第一不输出图像之前的第一图像组中的最后一个图像的短期参考图像相同。
应理解,第一图像组中的最后一个图像可以是第一图像组中编码顺序位于最后的一个图像。当然,第一图像组中的最后一个图像也可以是第一图像组中显示顺序位于最后的一个图像,本申请实施例对此不作限定。
可选地,在一种实现方式中,S110对待编码图像进行编码以生成码流,可以包括:参考与所述第二图像组中的第一个图像所使用的短期参考图像相同的短期参考图像,对所述第一不输出图像进行编码。即第一不输出图像所参考的短期参考图像,与编码顺序与该第一不输出图像相邻且在该第一不输出图像之后的第二图像组中的第一个图像的短期参考图像相同。
应理解,第二图像组中的第一个图像可以是第二图像组中编码顺序位于第一的图像。当然,第二图像组中的第一个图像也可以是第二图像组中显示顺序位于第一的图像,本申请实施例对此不作限定。
在此以一个具体的例子,即以第一不输出图像以第二图像组中的第一个图像的短期参考图像作参考的情况进行说明。参考表2,GOP中第一个图像的短期参考图像为-2,-10,-18,-26。由于不输出图像的POC比第二图像组中的第一个图像的POC小1,所以不输出图像的短期参考图像应为-1,-9,-17,-25。
下面将详细说明编码不输出图像所使用的短期参考图像的RPS信息。
可选地,在本申请一些实施例中,所述待编码图像包括第二不输出图像,所述码流中可以包括用于指示编码所述第二不输出图像所使用的第一类参考图像集的信息,所述第一类参考图像集包括短期参考图像。即第一类参考图像集的信息包括编码第二不输出图像所使用的短期参考图像的RPS信息。应理解,短期参考图像的RPS信息可以通过序列头和/或条带头来传输。
可选地,在一种实现方式中,可以将可用于不输出图像的短期参考图像的多个RPS配置参数,例如多个不输出图像可共用的RPS配置参数,提前在序列头中配置好。后续某一个不输出图像,例如第二不输出图像具体使用哪一个RPS配置参数,用所用指示即可。所述码流的序列头中可以包括至少一帧短期参考图像的配置参数与索引的对应关系;所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数 对应的索引。其中,至少一帧短期参考图像的配置参数是编码不输出图像可使用的短期参考图像的RPS配置参数。第一类参考图像集的信息,即第二不输出图像所使用的短期参考图像的配置参数对应的索引,可以位于第二不输出图像的条带头中,或者可以位于图像头中。
可选地,在另一种实现方式中,当RPS配置参数不是多个不输出图像共用的时,可以直接指示某一个不输出图像的短期参考图像的RPS配置参数,而不通过索引的方式。相应地,所述第一类参考图像集的信息可以包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数。第一类参考图像集的信息,即第二不输出图像所使用的短期参考图像的配置参数,可以位于第二不输出图像的条带头中,或者可以位于图像头中。
可选地,在本申请一些实施例中,所述第二不输出图像所使用的短期参考图像的配置参数可以包括:所述第二不输出图像所使用的短期参考图像的图像顺序序号相对于所述第二不输出图像的图像顺序序号的偏移。即类似输出图像所使用的短期参考图像的配置参数的编码方式,可以使用预测编码的方式对不输出图像所使用的短期参考图像的配置参数进行编码。通过预测编码的方式可以节省编码比特数。
仍以不输出图像以下一个GOP中的第一个图像的短期参考图像作参考的情况进行说明。当前的不输出图像与下一个GOP中的第一个图像的deltaRPS为1。ref_idcs为4,即使用下一个GOP中的第一个图像的4个reference_pictures作为短期参考图像。不输出图像的reference_pictures为-1,-9,-17,-25。reference idcs为1 1 1 1。
编码不输出图像所使用的长期参考图像,可以与前一图像组中的最后一个图像所使用的长期参考图像相同,或者与后一图像组中的第一个图像所使用的长期参考图像相同。或者,编码不输出图像可以使用参考图像缓冲区中任意的长期参考图像。或者编码不输出图像可以不参考长期参考图像,本申请实施例对此不作限定。编码不输出图像和/或输出图像所使用的长期参考图像
下面详细说明本申请实施例编码图像(包括输出图像和不输出图像)所使用的长期参考图像的RPS信息。
可选地,在本申请一些实施例中,所述码流中包括用于指示编码图像所使用的第二类参考图像集的信息,所述第二类参考图像集包括长期参考图像。
长期参考图像的RPS信息可以与短期参考图像的RPS信息的指示方式相类似。可选地,在一种实现方式中,所述码流的序列头中可以包括至少一帧长期参考图像的配置参数与索引的对应关系;所述第二类参考图像集的信息可以包括:用于指示图像所使用的长期参考图像的配置参数对应的索引。可选地,在另一种实现方式中,第二类参考图像集的信息可以包括:用于指示图像所使用的长期参考图像的配置参数。图像所使用的长期参考图像的配置参数也可以称为图像所使用的长期参考图像的RPS配置参数。图像所使用的长期参考图像的RPS配置参数可以包括:图像所使用的长期参考图像的图像顺序序号相对于该图像的图像顺序序号的偏移。
长期参考图像的RPS信息和短期参考图像的RPS信息的指示方式也可以有不同。长期参考图像的RPS信息可以不基于预测编码的方式,而是采用直接编码的方式。
可选地,在一种实现方式中,所述第二类参考图像集的信息位于所述码流的序列头中,所述第二类参考图像集的信息包括:第三不输出图像的图像顺序序号,所述第三不输出图像作为所述序列头对应的序列中的图像的图像块的长期参考图像。序列头中的不输出图像的图像顺序序号可以作为该序列头对应的序列中的图像(包括输出图像和/或不输出图像)的图像块的长期参考图像。第三不输出图像可以包括一个不输出图像也可以包括多个不输出图像。
可选地,在另一种实现方式中,所述第二类参考图像集的信息位于所述码流的序列头中,序列头中的不输出图像的图像顺序序号有可能作为该序列头对应的序列中的图像(包括输出图像和/或不输出图像)的图像块的长期参考图像。序列头中可以包括一个或多个不输出图像的图像顺序序号。具体的图像或图像的条带是否以序列头中图像顺序序号对应的不输出图像作为长期参考图像,还可以在图像头或者条带头中具体指示。
可选地,在又一种实现方式中,所述第二类参考图像集的信息位于所述码流的图像的第一条带的条带头中,所述第二类参考图像集的信息包括:作为所述第一条带中的图像块的长期参考图像的配置参数。在该实现方式中,位于条带头的第二类参考图像集的信息,可以用于指示相应条带中的图像块的长期参考图像的配置。
具体而言,所述作为所述第一条带中的图像块的长期参考图像的配置参 数中,可以包括:不输出图像的数量和不输出图像的图像顺序序号。在一种具体方案中,在该长期参考图像的配置参数中,条带头所包含的图像顺序序号对应的不输出图像均作为第一条带中的图像块的长期参考图像。在另一种具体方案中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,还可以包括:用于指示不输出图像是否作为所述第一条带的长期参考图像的第一标识符。在该具体方案中,条带头所包含的图像顺序序号对应的不输出图像并不全部作为第一条带中的图像块的长期参考图像。是否作为第一条带的长期参考图像还依赖于第一标识符的指示。
具体地,当所述第一标识符指示所述不输出图像中的第四不输出图像不作为所述第一条带中的图像块的长期参考图像时,编码设备会将所述第四不输出图像从参考图像缓冲区中删除。或者说,编码设备将所述第四不输出图像从参考图像缓冲区中删除,并使用第一标识符指示不将第四不输出图像作为第一条带中的图像块的长期参考图像。将第四不输出图像从参考图像缓冲区中删除后,在第一条带后编码的条带或图像将均不再参考第四不输出图像。
应理解,本申请各实施例中条带头也可以替换为图像头,相应地,一个图像头也对应一个图像。
可选地,在又一种实现方式中,可以同时在序列头中和在条带头中指示长期参考图像的配置。序列头中的长期参考图像的配置适用于序列头对应的序列中的所有图像(或条带,或图像块)。条带头中的长期参考图像的配置适用于本条带头对应的条带中的图像块。
可选地,在本申请一些实施例中,所述码流的所述至少一个不输出图像中包括第五不输出图像和第六不输出图像,所述第六不输出图像在所述第五不输出图像之后完成编码。S110对待编码图像进行编码以生成码流,可以包括:以所述第五不输出图像作为长期参考图像,对编码顺序位于所述第一不输出图像之后且位于所述第六不输出图像之前的所述输出图像进行编码。换而言之,编码顺序在第五不输出图像和第六不输出图像之间的图像,可以均以第五不输出图像作为长期参考图像。如前文所述,待编码图像参考的长期参考图像可以以其他的规则约定,本申请实施例对此不作限定。
在编码完一帧不输出图像之后,编码完下一一帧不输出图像之前,所有的输出图像均可以使用该不输出图像作为参考图像。可以将不输出图像标识为长期参考图像,并使其位于参考图像缓冲区中。为了增加这个特征,可以 对不输出图像之后的输出图像的RPS信息进行一定的修改,具体可以增加一帧长期参考图像的RPS配置参数。在编码完其RPS配置参数的短期参考图像的部分后,按前文所述,可以编码RPS配置参数的长期参考图像的部分。长期参考图像的部分具体可以包括长期参考图像的数量,使用不输出图像作为长期参考图像的POC,标记该不输出图像是否被当前图像参考使用的第一标识符等。
可选地,在本申请一些实施例中,所述编码方法100还可以包括:根据编码顺序位于所述不输出图像之前的多个图像的图像块,构造所述不输出图像。例如所述根据编码顺序位于所述不输出图像之前的多个图像的图像块,构造所述不输出图像,可以包括:基于原始图像,根据所述多个图像更新所述原始图像的图像块;当被更新的图像块的数量大于或等于预设阈值时,将更新后的原始图像作为所述不输出图像。
构造一个不输出图像,可以基于原始图像。该原始图像可以为帧内预测图像,即I帧。例如,原始图像可以为随机访问点对应的图像。构造方式可以基于逐块更新的方式。当对不输出图像构造完成时,即可进行不输出图像的编码。不输出图像构造完成的认定方式可以为:不输出图像相对原始图像已经有具有不少于预设阈值的图像块被更新,例如已经有不少于25%的图像块被更新,则可以认为当前的不输出图像已经构造完毕。本申请各实施例还可以可以基于其他的方式选定或者构造不输出图像,例如直接将I帧确定为不输出图像等,本申请实施例对此不作限定。
可选地,在本申请一些实施例中,所述不输出图像的编码数据中包括用于指示不对所述不输出图像进行输出的第二标识符。例如,当图像为不输出图像时,其PPS的参数output_flag_present_flag可以设置为1,表示条带头中包含pic_output_flag这个值。该不输出图像的条带头的参数pic_output_flag设置为0,表示该条带所在的图像为不输出图像。
不同于表1和表2所描述的例子,下面给出了另外一种编码方式的例子。如下表3是采样现有的POC配置方式的短期参考图像的RPS配置参数的一个示例。该编码方式下每个GOP中有两帧输出图像。
表3一种编码方式下短期参考图像的RPS配置参数
index type POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs
1 B 1 2 2 -1-3 0      
2 B 2 2 2 -1-2 1 -1 3 101
每一帧图像的短期参考图像是前一帧图像,以及前面连续的GOP的最后一帧图像。短期参考图像的总数不超过2帧。图3是本申请一个实施例提供的GOP中图像的参考关系的示意图。
应理解,由于本申请实施例中输出图像的图像顺序序号相对于现有的编号方式有变化,相应地对图像进行编码时所使用的参考图像集配置参数,例如RPS配置参数也相应进行调整。本申请一些实施例中,RPS配置参数相对表3可以变化为表4的内容。
表4一种编码方式下短期参考图像的RPS配置参数
index type POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs
1 B 2 2 2 -2-6 0      
2 B 4 2 2 -2-4 1 -2 3 101
从第一个输出图像编码完之后开始构造不输出图像,当不输出图像构造完成后,选择在一个GOP结束之后,下一个GOP结束之前编码该不输出不输出图像。
编码该不输出图像的RPS信息可以使用帧间编码的方式。仍以不输出图像以下一个GOP中的第一个图像的短期参考图像作参考的情况进行说明。当前的不输出图像与下一个GOP中的第一个图像的deltaRPS为1。ref_idcs为2,即使用下一个GOP中的第一个图像的2个reference_pictures作为短期参考图像。不输出图像的reference_pictures为-1,-5。reference idc为1 1。该不输出图像的PPS的参数output_flag_present_flag可以设置为1,表示条带头中包含pic_output_flag这个值。该不输出图像的条带头的参数pic_output_flag设置为0,表示该条带所在的图像为不输出图像。
在编码完一帧不输出图像之后,编码完下一一帧不输出图像之前,所有的输出图像均可以使用该不输出图像作为参考图像。可以将不输出图像标识为长期参考图像,并使其位于参考图像缓冲区中。为了增加这个特征,可以对不输出图像之后的输出图像的RPS信息进行一定的修改,具体可以增加一帧长期参考图像的RPS配置参数。在编码完其RPS配置参数的短期参考图像的部分后,按前文所述,可以编码RPS配置参数的长期参考图像的部分。长期参考图像的部分具体可以包括长期参考图像的数量,使用不输出图像作为长期参考图像的POC,标记该不输出图像是否被当前图像参考使用的第一 标识符等。
下面给出了另外一种编码方式的例子。如下表5是采样现有的POC配置方式的短期参考图像的RPS配置参数的一个示例。该编码方式下每个GOP中有1帧输出图像。
表5另一种编码方式下短期参考图像的RPS配置参数
index type POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs
1 B 1 2 2 -1-2 0      
每一帧图像的短期参考图像是前一帧图像,以及前面连续的GOP的最后一帧图像。短期参考图像的总数不超过2帧。图4是本申请一个实施例提供的GOP中图像的参考关系的示意图。
应理解,由于本申请实施例中输出图像的图像顺序序号相对于现有的编号方式有变化,相应地对图像进行编码时所使用的参考图像集配置参数,例如RPS配置参数也相应进行调整。本申请一些实施例中,RPS配置参数相对表5可以变化为表6的内容。
表6一种编码方式下短期参考图像的RPS配置参数
index type POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs
1 B 2 2 2 -2-4 0      
从第一个输出图像编码完之后开始构造不输出图像,当不输出图像构造完成后,选择在一个GOP结束之后,下一个GOP结束之前编码该不输出不输出图像。
编码该不输出图像的RPS信息可以使用帧间编码的方式。仍以不输出图像以下一个GOP中的第一个图像的短期参考图像作参考的情况进行说明。当前的不输出图像与下一个GOP中的第一个图像的deltaRPS为1。ref_idcs为2,即使用下一个GOP中的第一个图像的2个reference_pictures作为短期参考图像。不输出图像的reference_pictures为-1,-3。reference idc为1 1。该不输出图像的PPS的参数output_flag_present_flag可以设置为1,表示条带头中包含pic_output_flag这个值。该不输出图像的条带头的参数pic_output_flag设置为0,表示该条带所在的图像为不输出图像。
在编码完一帧不输出图像之后,编码完下一帧不输出图像之前,所有的输出图像均可以使用该不输出图像作为参考图像。可以将不输出图像标识为长期参考图像,并使其位于参考图像缓冲区中。为了增加这个特征,可以对 不输出图像之后的输出图像的RPS信息进行一定的修改,具体可以增加一帧长期参考图像的RPS配置参数。在编码其RPS配置参数的短期参考图像的部分之外,按前文所述,可以编码RPS配置参数的长期参考图像的部分。长期参考图像的部分具体可以包括长期参考图像的数量,使用不输出图像作为长期参考图像的POC,标记该不输出图像是否被当前图像参考使用的第一标识符等。
下面给出了另外一种层次编码方式的例子。如下表7是一种层次编码方式下采用现有的POC设置方法的短期参考图像的RPS配置参数的一个示例。该编码方式下每个GOP中有4帧输出图像。
表7一种编码方式下短期参考图像的RPS配置参数
index type POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs
1 B 4 2 2 -4-8 0      
2 B 2 2 2 -22 1 6 2 11
3 B 1 2 3 -113 1 1 3 111
4 B 3 2 3 -1-31 1 -2 3 111
图5是本申请一个实施例提供的GOP中图像的参考关系的示意图。其编码顺序是I0,B4,B2,B1,B3,B8,B6,B5,B7。
应理解,由于本申请实施例中输出图像的图像顺序序号相对于现有的编号方式有变化,相应地对图像进行编码时所使用的参考图像集配置参数,例如RPS配置参数也相应进行调整。本申请一些实施例中,RPS配置参数相对表7可以变化为表8的内容。
表8一种编码方式下短期参考图像的RPS配置参数
index type POC ref_pics_active ref_pics reference_pictures predict deltaRPS ref_idcs reference idcs
1 B 8 2 2 -8-16 0      
2 B 4 2 2 -44 1 12 2 11
3 B 2 2 3 -226 1 2 3 111
4 B 6 2 3 -2-62 1 -4 3 111
从第一个输出图像编码完之后开始构造不输出图像,当不输出图像构造完成后,选择在一个GOP结束之后,下一个GOP结束之前编码该不输出不输出图像。
编码该不输出图像的RPS信息可以使用帧间编码的方式。仍以不输出 图像以下一个GOP中的第一个图像的短期参考图像作参考的情况进行说明。当前的不输出图像与下一个GOP中的第一个图像的deltaRPS为1。ref_idcs为2,即使用下一个GOP中的第一个图像的2个reference_pictures作为短期参考图像。不输出图像的reference_pictures为-7,-15。reference idc为1 1。该不输出图像的PPS的参数output_flag_present_flag可以设置为1,表示条带头中包含pic_output_flag这个值。该不输出图像的条带头的参数pic_output_flag设置为0,表示该条带所在的图像为不输出图像。
在编码完一帧不输出图像之后,编码完下一帧不输出图像之前,所有的输出图像均可以使用该不输出图像作为参考图像。可以将不输出图像标识为长期参考图像,并使其位于参考图像缓冲区中。为了增加这个特征,可以对不输出图像之后的输出图像的RPS信息进行一定的修改,具体可以增加一帧长期参考图像的RPS配置参数。在编码完其RPS配置参数的短期参考图像的部分之外,按前文所述,可以编码RPS配置参数的长期参考图像的部分。长期参考图像的部分具体可以包括长期参考图像的数量,使用不输出图像作为长期参考图像的POC,标记该不输出图像是否被当前图像参考使用的第一标识符等。
图6是本申请一个实施例提供的解码方法200的示意性流程图。如图6所示,解码方法200可以包括以下步骤。
S210,接收码流,该码流中包括不输出图像和输出图像的待解码数据,该输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个该不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间。
S220,对该码流进行解码。
本申请实施例的解码方法,将不输出图像存在于码流中,通过使得输出图像中显示顺序相邻的任意两个输出图像的POC的差大于1,输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,并且POC上相邻的两个输出图像的POC之间可以存在不输出图像的POC,这样使得不输出图像可以在不影响输出图像的POC的时间相关性的情况下,被插入输出图像中,能够避免编码时出现运动矢量预测错误及缩放失效等问题。
可选地,在本申请的一些实施例中,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值是成比例的。换而言之,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值,与另外任意两个输出图像的图像顺序序号的差与所述另外任意两个输出图像的拍摄时间间隔的比值相等。
可选地,在本申请的一些实施例中,所述显示顺序相邻的任意两个输出图像的图像顺序序号的差是2。
可选地,在本申请的一些实施例中,所述待编码图像包括第二不输出图像,所述码流中包括用于指示编码所述第二不输出图像所使用的第一类参考图像集的信息,所述第一类参考图像集包括短期参考图像。
可选地,在本申请的一些实施例中,所述码流的序列头中包括至少一帧短期参考图像的配置参数与索引的对应关系;所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数对应的索引。
可选地,在本申请的一些实施例中,所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数。
可选地,在本申请的一些实施例中,所述第一类参考图像集的信息位于所述第二不输出图像的条带头内。
可选地,在本申请的一些实施例中,所述第二不输出图像所使用的短期参考图像的配置参数包括:所述第二不输出图像所使用的短期参考图像的图像顺序序号相对于所述第二不输出图像的图像顺序序号的偏移。
可选地,在本申请的一些实施例中,所述码流中包括用于指示编码图像所使用的第二类参考图像集的信息,所述第二类参考图像集包括长期参考图像。
可选地,在本申请的一些实施例中,所述第二类参考图像集的信息位于所述码流的序列头中,所述第二类参考图像集的信息包括:第三不输出图像的图像顺序序号,所述第三不输出图像作为所述序列头对应的序列中的图像的图像块的长期参考图像。
可选地,在本申请的一些实施例中,所述第二类参考图像集的信息位于所述码流的图像的第一条带的条带头中,所述第二类参考图像集的信息包括: 作为所述第一条带中的图像块的长期参考图像的配置参数。
可选地,在本申请的一些实施例中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,包括:不输出图像的数量和不输出图像的图像顺序序号。
可选地,在本申请的一些实施例中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,还包括:用于指示不输出图像是否作为所述第一条带的长期参考图像的第一标识符。
可选地,在本申请的一些实施例中,S220对所述码流进行解码,包括:当所述第一标识符指示所述不输出图像中的第四不输出图像不作为所述第一条带中的图像块的长期参考图像时,将所述第四不输出图像从参考图像缓冲区中删除。
可选地,在本申请的一些实施例中,所述码流的所述至少一个不输出图像中包括第五不输出图像和第六不输出图像,所述第六不输出图像在所述第五不输出图像之后完成解码;S220对所述码流进行解码,包括:以所述第五不输出图像作为长期参考图像,对待解码顺序位于所述第一不输出图像之后且位于所述第六不输出图像之前的所述输出图像进行解码。
可选地,在本申请的一些实施例中,所述不输出图像的编码数据中包括用于指示不对所述不输出图像进行输出的第二标识符。
可选地,在本申请的一些实施例中,所述不输出图像包括以下至少一种:长期参考图像、构造帧、短期参考图像、构造的长期参考图像。
以上结合图1至图6详细说明了本申请实施例的方法,下面结合图7至图10详细说明本申请实施例的编码设备和解码设备。
图7是本申请实施例提供的编码设备300的示意性框图。该编码设备300包括:编码模块310,用于对待编码图像进行编码以生成码流,所述待编码图像包括不输出图像和输出图像,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;发送模块320,用于发送编码模块310生成的码流。
本申请实施例的编码设备,将不输出图像编入码流中,通过使得输出图像中显示顺序相邻的任意两个输出图像的POC的差大于1,并且POC上相 邻的两个输出图像的POC之间可以存在不输出图像的POC,这样使得不输出图像可以在不影响输出图像的POC的时间相关性的情况下,被插入输出图像中,能够避免编码时出现运动矢量预测错误及缩放失效等问题。
可选地,在本申请的一些实施例中,所述输出图像中,至少部分显示顺序相邻的两个输出图像的图像顺序序号的差相等。
可选地,在本申请的一些实施例中,所述显示顺序相邻的任意两个输出图像的图像顺序序号的差是2。
可选地,在本申请的一些实施例中,编码设备300还包括处理模块330,用于在编码模块310对待编码图像进行编码以生成码流之前,将所述待编码图像划分为多个图像组,所述图像组由单独的帧内预测图像组成,或者由多个帧间预测图像组成。
可选地,在本申请的一些实施例中,所述待编码图像包括第一不输出图像,所述第一不输出图像的编码顺序在第一图像组之后且在第二图像组之前。
可选地,在本申请的一些实施例中,编码模块310具体用于参考与所述第一图像组中的最后一个图像所使用的短期参考图像相同的短期参考图像,对所述第一不输出图像进行编码。
可选地,在本申请的一些实施例中,编码模块310具体用于参考与所述第二图像组中的第一个图像所使用的短期参考图像相同的短期参考图像,对所述第一不输出图像进行编码。
可选地,在本申请的一些实施例中,所述待编码图像包括第二不输出图像,所述码流中包括用于指示编码所述第二不输出图像所使用的第一类参考图像集的信息,所述第一类参考图像集包括短期参考图像。
可选地,在本申请的一些实施例中,所述码流的序列头中包括至少一帧短期参考图像的配置参数与索引的对应关系;所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数对应的索引。
可选地,在本申请的一些实施例中,所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数。
可选地,在本申请的一些实施例中,所述第一类参考图像集的信息位于所述第二不输出图像的条带头内。
可选地,在本申请的一些实施例中,所述第二不输出图像所使用的短期 参考图像的配置参数包括:所述第二不输出图像所使用的短期参考图像的图像顺序序号相对于所述第二不输出图像的图像顺序序号的偏移。
可选地,在本申请的一些实施例中,所述码流中包括用于指示编码图像所使用的第二类参考图像集的信息,所述第二类参考图像集包括长期参考图像。
可选地,在本申请的一些实施例中,所述第二类参考图像集的信息位于所述码流的序列头中,所述第二类参考图像集的信息包括:第三不输出图像的图像顺序序号,所述第三不输出图像作为所述序列头对应的序列中的图像的图像块的长期参考图像。
可选地,在本申请的一些实施例中,所述第二类参考图像集的信息位于所述码流的图像的第一条带的条带头中,所述第二类参考图像集的信息包括:作为所述第一条带中的图像块的长期参考图像的配置参数。
可选地,在本申请的一些实施例中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,包括:不输出图像的数量和不输出图像的图像顺序序号。
可选地,在本申请的一些实施例中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,还包括:用于指示不输出图像是否作为所述第一条带的长期参考图像的第一标识符。
可选地,在本申请的一些实施例中,所述编码模块310具体用于当所述第一标识符指示所述不输出图像中的第四不输出图像不作为所述第一条带中的图像块的长期参考图像时,将所述第四不输出图像从参考图像缓冲区中删除。
可选地,在本申请的一些实施例中,所述码流的所述至少一个不输出图像中包括第五不输出图像和第六不输出图像,所述第六不输出图像在所述第五不输出图像之后完成编码;所述编码模块310具体用于:以所述第五不输出图像作为长期参考图像,对编码顺序位于所述第一不输出图像之后且位于所述第六不输出图像之前的所述输出图像进行编码。
可选地,在本申请的一些实施例中,所述编码设备还包括的处理模块330,还可以用于根据编码顺序位于所述不输出图像之前的多个图像的图像块,构造所述不输出图像。
可选地,在本申请的一些实施例中,所述处理模块330根据编码顺序位 于所述不输出图像之前的多个图像的图像块,构造所述不输出图像,包括:基于原始图像,根据所述多个图像更新所述原始图像的图像块;当被更新的图像块的数量大于或等于预设阈值时,将更新后的原始图像作为所述不输出图像。
可选地,在本申请的一些实施例中,所述原始图像为帧内预测图像。
可选地,在本申请的一些实施例中,所述不输出图像的编码数据中包括用于指示不对所述不输出图像进行输出的第二标识符。
可选地,在本申请的一些实施例中,所述不输出图像包括以下至少一种:长期参考图像、构造帧、短期参考图像、构造的长期参考图像。
图8是本申请实施例提供的编码设备400的示意性框图。如图8所示的编码设备400可以包括处理器410和存储器420,所述存储器420中存储有计算机指令,所述处理器410执行所述计算机指令时,使得所述编码设备400执行以下步骤:对待编码图像进行编码以生成码流,所述待编码图像包括不输出图像和输出图像,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;发送所述码流。
应理解,本申请实施例的编码设备400还可以包括网络接口,以用于传输码流。
可选地,在本申请的一些实施例中,所述输出图像中,至少部分显示顺序相邻的两个输出图像的图像顺序序号的差相等。
可选地,在本申请的一些实施例中,所述显示顺序相邻的任意两个输出图像的图像顺序序号的差是2。
可选地,在本申请的一些实施例中,所述处理器410还用于执行所述计算机指令,使得所述编码设备400在所述对待编码图像进行编码以生成码流之前,还执行以下步骤:将所述待编码图像划分为多个图像组,所述图像组由单独的帧内预测图像组成,或者由多个帧间预测图像组成。
可选地,在本申请的一些实施例中,所述待编码图像包括第一不输出图像,所述第一不输出图像的编码顺序在第一图像组之后且在第二图像组之前。
可选地,在本申请的一些实施例中,所述处理器410执行对待编码图像 进行编码以生成码流的计算机指令,使得所述编码设备具体执行以下步骤:参考与所述第一图像组中的最后一个图像所使用的短期参考图像相同的短期参考图像,对所述第一不输出图像进行编码。
可选地,在本申请的一些实施例中,所述处理器410执行对待编码图像进行编码以生成码流的计算机指令,使得所述编码设备具体执行以下步骤:参考与所述第二图像组中的第一个图像所使用的短期参考图像相同的短期参考图像,对所述第一不输出图像进行编码。
可选地,在本申请的一些实施例中,所述待编码图像包括第二不输出图像,所述码流中包括用于指示编码所述第二不输出图像所使用的第一类参考图像集的信息,所述第一类参考图像集包括短期参考图像。
可选地,在本申请的一些实施例中,所述码流的序列头中包括至少一帧短期参考图像的配置参数与索引的对应关系;所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数对应的索引。
可选地,在本申请的一些实施例中,所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数。
可选地,在本申请的一些实施例中,所述第一类参考图像集的信息位于所述第二不输出图像的条带头内。
可选地,在本申请的一些实施例中,所述第二不输出图像所使用的短期参考图像的配置参数包括:所述第二不输出图像所使用的短期参考图像的图像顺序序号相对于所述第二不输出图像的图像顺序序号的偏移。
可选地,在本申请的一些实施例中,所述码流中包括用于指示编码图像所使用的第二类参考图像集的信息,所述第二类参考图像集包括长期参考图像。
可选地,在本申请的一些实施例中,所述第二类参考图像集的信息位于所述码流的序列头中,所述第二类参考图像集的信息包括:第三不输出图像的图像顺序序号,所述第三不输出图像作为所述序列头对应的序列中的图像的图像块的长期参考图像。
可选地,在本申请的一些实施例中,所述第二类参考图像集的信息位于所述码流的图像的第一条带的条带头中,所述第二类参考图像集的信息包括:作为所述第一条带中的图像块的长期参考图像的配置参数。
可选地,在本申请的一些实施例中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,包括:不输出图像的数量和不输出图像的图像顺序序号。
可选地,在本申请的一些实施例中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,还包括:用于指示不输出图像是否作为所述第一条带的长期参考图像的第一标识符。
可选地,在本申请的一些实施例中,所述处理器410执行对待编码图像进行编码以生成码流的计算机指令,使得所述编码设备400具体执行以下步骤:当所述第一标识符指示所述不输出图像中的第四不输出图像不作为所述第一条带中的图像块的长期参考图像时,将所述第四不输出图像从参考图像缓冲区中删除。
可选地,在本申请的一些实施例中,所述码流的所述至少一个不输出图像中包括第五不输出图像和第六不输出图像,所述第六不输出图像在所述第五不输出图像之后完成编码;所述处理器410执行对待编码图像进行编码以生成码流的计算机指令,使得所述编码设备400具体执行以下步骤:以所述第五不输出图像作为长期参考图像,对编码顺序位于所述第一不输出图像之后且位于所述第六不输出图像之前的所述输出图像进行编码。
可选地,在本申请的一些实施例中,所述处理器410还用于执行所述计算机指令,使得所述编码设备400执行以下步骤:根据编码顺序位于所述不输出图像之前的多个图像的图像块,构造所述不输出图像。
可选地,在本申请的一些实施例中,所述处理器410执行根据编码顺序位于所述不输出图像之前的多个图像的图像块,构造所述不输出图像,使得所述编码设备400具体执行以下步骤:基于原始图像,根据所述多个图像更新所述原始图像的图像块;当被更新的图像块的数量大于或等于预设阈值时,将更新后的原始图像作为所述不输出图像。
可选地,在本申请的一些实施例中,所述原始图像为帧内预测图像。
可选地,在本申请的一些实施例中,所述不输出图像的编码数据中包括用于指示不对所述不输出图像进行输出的第二标识符。
可选地,在本申请的一些实施例中,所述不输出图像包括以下至少一种:长期参考图像、构造帧、短期参考图像、构造的长期参考图像。
应理解,图7所示的编码设备300或图8所示的编码设备400,可用于 执行上述方法实施例中编码设备的操作或流程,并且编码设备300或编码设备400中的各个模块和器件的操作和/或功能分别为了实现上述方法实施例中的相应流程,为了简洁,在此不再赘述。
图9是本申请实施例提供的解码设备500的示意性框图。该解码设备500包括:接收模块510,用于接收码流,所述码流中包括不输出图像和输出图像的待解码数据,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;解码模块520,用于对接收模块510接收的所述码流进行解码。
本申请实施例的解码设备,将不输出图像存在于码流中,通过使得输出图像中显示顺序相邻的任意两个输出图像的POC的差大于1,并且POC上相邻的两个输出图像的POC之间可以存在不输出图像的POC,这样使得不输出图像可以在不影响输出图像的POC的时间相关性的情况下,被插入输出图像中,能够避免编码时出现运动矢量预测错误及缩放失效等问题。
可选地,在本申请的一些实施例中,所述输出图像中,至少部分显示顺序相邻的两个输出图像的图像顺序序号的差相等。
可选地,在本申请的一些实施例中,所述显示顺序相邻的任意两个输出图像的图像顺序序号的差是2。
可选地,在本申请的一些实施例中,所述待编码图像包括第二不输出图像,所述码流中包括用于指示编码所述第二不输出图像所使用的第一类参考图像集的信息,所述第一类参考图像集包括短期参考图像。
可选地,在本申请的一些实施例中,所述码流的序列头中包括至少一帧短期参考图像的配置参数与索引的对应关系;所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数对应的索引。
可选地,在本申请的一些实施例中,所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数。
可选地,在本申请的一些实施例中,所述第一类参考图像集的信息位于所述第二不输出图像的条带头内。
可选地,在本申请的一些实施例中,所述第二不输出图像所使用的短期 参考图像的配置参数包括:所述第二不输出图像所使用的短期参考图像的图像顺序序号相对于所述第二不输出图像的图像顺序序号的偏移。
可选地,在本申请的一些实施例中,所述码流中包括用于指示编码图像所使用的第二类参考图像集的信息,所述第二类参考图像集包括长期参考图像。
可选地,在本申请的一些实施例中,所述第二类参考图像集的信息位于所述码流的序列头中,所述第二类参考图像集的信息包括:第三不输出图像的图像顺序序号,所述第三不输出图像作为所述序列头对应的序列中的图像的图像块的长期参考图像。
可选地,在本申请的一些实施例中,所述第二类参考图像集的信息位于所述码流的图像的第一条带的条带头中,所述第二类参考图像集的信息包括:作为所述第一条带中的图像块的长期参考图像的配置参数。
可选地,在本申请的一些实施例中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,包括:不输出图像的数量和不输出图像的图像顺序序号。
可选地,在本申请的一些实施例中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,还包括:用于指示不输出图像是否作为所述第一条带的长期参考图像的第一标识符。
可选地,在本申请的一些实施例中,解码模块520具体用于当所述第一标识符指示所述不输出图像中的第四不输出图像不作为所述第一条带中的图像块的长期参考图像时,将所述第四不输出图像从参考图像缓冲区中删除。
可选地,在本申请的一些实施例中,所述码流的所述至少一个不输出图像中包括第五不输出图像和第六不输出图像,所述第六不输出图像在所述第五不输出图像之后完成解码;解码模块520具体用于:以所述第五不输出图像作为长期参考图像,对待解码顺序位于所述第一不输出图像之后且位于所述第六不输出图像之前的所述输出图像进行解码。
可选地,在本申请的一些实施例中,所述不输出图像的编码数据中包括用于指示不对所述不输出图像进行输出的第二标识符。
可选地,在本申请的一些实施例中,所述不输出图像包括以下至少一种:长期参考图像、构造帧、短期参考图像、构造的长期参考图像。
图10是本申请实施例提供的解码设备600的示意性框图。如图10所示 的解码设备600可以包括处理器610和存储器620,所述存储器620中存储有计算机指令,所述处理器610执行所述计算机指令时,使得所述解码设备600执行以下步骤:接收码流,所述码流中包括不输出图像和输出图像的待解码数据,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;对所述码流进行解码。
应理解,本申请实施例的解码设备600还可以包括网络接口,以用于传输码流。
可选地,在本申请的一些实施例中,所述输出图像中,至少部分显示顺序相邻的两个输出图像的图像顺序序号的差相等。
可选地,在本申请的一些实施例中,所述显示顺序相邻的任意两个输出图像的图像顺序序号的差是2。
可选地,在本申请的一些实施例中,所述待编码图像包括第二不输出图像,所述码流中包括用于指示编码所述第二不输出图像所使用的第一类参考图像集的信息,所述第一类参考图像集包括短期参考图像。
可选地,在本申请的一些实施例中,所述码流的序列头中包括至少一帧短期参考图像的配置参数与索引的对应关系;所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数对应的索引。
可选地,在本申请的一些实施例中,所述第一类参考图像集的信息包括:用于指示所述第二不输出图像所使用的短期参考图像的配置参数。
可选地,在本申请的一些实施例中,所述第一类参考图像集的信息位于所述第二不输出图像的条带头内。
可选地,在本申请的一些实施例中,所述第二不输出图像所使用的短期参考图像的配置参数包括:所述第二不输出图像所使用的短期参考图像的图像顺序序号相对于所述第二不输出图像的图像顺序序号的偏移。
可选地,在本申请的一些实施例中,所述码流中包括用于指示编码图像所使用的第二类参考图像集的信息,所述第二类参考图像集包括长期参考图像。
可选地,在本申请的一些实施例中,所述第二类参考图像集的信息位于所述码流的序列头中,所述第二类参考图像集的信息包括:第三不输出图像的图像顺序序号,所述第三不输出图像作为所述序列头对应的序列中的图像的图像块的长期参考图像。
可选地,在本申请的一些实施例中,所述第二类参考图像集的信息位于所述码流的图像的第一条带的条带头中,所述第二类参考图像集的信息包括:作为所述第一条带中的图像块的长期参考图像的配置参数。
可选地,在本申请的一些实施例中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,包括:不输出图像的数量和不输出图像的图像顺序序号。
可选地,在本申请的一些实施例中,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,还包括:用于指示不输出图像是否作为所述第一条带的长期参考图像的第一标识符。
可选地,在本申请的一些实施例中,所述处理器610执行对所述码流进行解码的计算机指令,使得所述解码设备600具体执行以下步骤:当所述第一标识符指示所述不输出图像中的第四不输出图像不作为所述第一条带中的图像块的长期参考图像时,将所述第四不输出图像从参考图像缓冲区中删除。
可选地,在本申请的一些实施例中,所述码流的所述至少一个不输出图像中包括第五不输出图像和第六不输出图像,所述第六不输出图像在所述第五不输出图像之后完成解码;所述处理器610执行对所述码流进行解码的计算机指令,使得所述解码设备600具体执行以下步骤:以所述第五不输出图像作为长期参考图像,对待解码顺序位于所述第一不输出图像之后且位于所述第六不输出图像之前的所述输出图像进行解码。
可选地,在本申请的一些实施例中,所述不输出图像的编码数据中包括用于指示不对所述不输出图像进行输出的第二标识符。
可选地,在本申请的一些实施例中,所述不输出图像包括以下至少一种:长期参考图像、构造帧、短期参考图像、构造的长期参考图像。
应理解,图9所示的解码设备500或图10所示的解码设备600,可用于执行上述方法实施例中解码设备的操作或流程,并且解码设备500或解码设备600中的各个模块和器件的操作和/或功能分别为了实现上述方法实施例 中的相应流程,为了简洁,在此不再赘述。
应理解,本申请各实施例的设备可以基于存储器和处理器实现,各存储器用于存储用于执行本申请个实施例的方法的指令,处理器执行上述指令,使得设备执行本申请各实施例的方法。
应理解,本申请实施例中提及的处理器可以包括中央处理器(central processing pnit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic Device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
还应理解,本申请实施例中提及的存储器可以是易失性存储器(volatile memory)或非易失性存储器(non-volatile memory),或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型 的存储器。
本申请实施例还提供一种计算机可读存储介质,其上存储有指令,当指令在计算机上运行时,使得所述计算机执行上述方法实施例的由编码设备执行的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有指令,当指令在计算机上运行时,使得所述计算机执行上述方法实施例的由解码设备执行的步骤。
本申请实施例还提供一种计算设备,该计算设备包括上述计算机可读存储介质。
本申请实施例还提供一种包括指令的计算机程序产品,其特征在于,当计算机运行所述计算机程序产品的所述指时,所述计算机执行上述方法实施例的由编码设备执行的步骤。
本申请实施例还提供一种包括指令的计算机程序产品,其特征在于,当计算机运行所述计算机程序产品的所述指时,所述计算机执行上述方法实施例的由解码设备执行的步骤。
本申请实施例还提供一种计算机芯片,该计算机芯片使得计算机执行上述方法实施例的由编码设备执行的步骤。
本申请实施例还提供一种计算机芯片,该计算机芯片使得计算机执行上述方法实施例的由解码设备执行的步骤。
本申请实施例可以应用在飞行器,尤其是无人机领域。
应理解,本申请各实施例的电路、子电路、子单元的划分只是示意性的。本领域普通技术人员可以意识到,本文中所公开的实施例描述的各示例的电路、子电路和子单元,能够再行拆分或组合。
本申请实施例提供给的设备,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过 有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,SSD)等。
应理解,本文中涉及的第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请的范围。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (84)

  1. 一种编码方法,其特征在于,包括:
    对待编码图像进行编码,所述待编码图像包括不输出图像和输出图像,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;
    生成所述带编码图像的码流。
  2. 根据权利要求1所述的编码方法,其特征在于,所述输出图像中,至少部分显示顺序相邻的两个输出图像的图像顺序序号的差相等。
  3. 根据权利要求1或2所述的编码方法,其特征在于,所述显示顺序相邻的任意两个输出图像的图像顺序序号的差是2。
  4. 根据权利要求1至3中任一项所述的编码方法,其特征在于,在所述对待编码图像进行编码以生成码流之前,所述编码方法还包括:
    将所述待编码图像划分为多个图像组,所述图像组由单独的帧内预测图像组成,或者由多个帧间预测图像组成。
  5. 根据权利要求1至4中任一项所述的编码方法,其特征在于,所述待编码图像包括第一不输出图像,所述第一不输出图像的编码顺序在第一图像组之后且在第二图像组之前。
  6. 根据权利要求5所述的编码方法,其特征在于,所述对待编码图像进行编码以生成码流,包括:
    参考与所述第一图像组中的最后一个图像所使用的短期参考图像相同的短期参考图像,对所述第一不输出图像进行编码。
  7. 根据权利要求5所述的编码方法,其特征在于,所述对待编码图像进行编码以生成码流,包括:
    参考与所述第二图像组中的第一个图像所使用的短期参考图像相同的短期参考图像,对所述第一不输出图像进行编码。
  8. 根据权利要求1至7中任一项所述的编码方法,其特征在于,所述待编码图像包括第二不输出图像,所述码流中包括用于指示编码所述第二不输出图像所使用的第一类参考图像集的信息,所述第一类参考图像集包括短期 参考图像。
  9. 根据权利要求8所述的编码方法,其特征在于,所述码流的序列头中包括至少一帧短期参考图像的配置参数与索引的对应关系;
    所述第一类参考图像集的信息包括:
    用于指示所述第二不输出图像所使用的短期参考图像的配置参数对应的索引。
  10. 根据权利要求8所述的编码方法,其特征在于,所述第一类参考图像集的信息包括:
    用于指示所述第二不输出图像所使用的短期参考图像的配置参数。
  11. 根据权利要求9或10所述的编码方法,其特征在于,所述第一类参考图像集的信息位于所述第二不输出图像的条带头内。
  12. 根据权利要求9至11中任一项所述的编码方法,其特征在于,所述第二不输出图像所使用的短期参考图像的配置参数包括:
    所述第二不输出图像所使用的短期参考图像的图像顺序序号相对于所述第二不输出图像的图像顺序序号的偏移。
  13. 根据权利要求1至12中任一项所述的编码方法,其特征在于,所述码流中包括用于指示编码图像所使用的第二类参考图像集的信息,所述第二类参考图像集包括长期参考图像。
  14. 根据权利要求13所述的编码方法,其特征在于,所述第二类参考图像集的信息位于所述码流的序列头中,
    所述第二类参考图像集的信息包括:
    第三不输出图像的图像顺序序号,所述第三不输出图像作为所述序列头对应的序列中的图像的图像块的长期参考图像。
  15. 根据权利要求13或14所述的编码方法,其特征在于,所述第二类参考图像集的信息位于所述码流的图像的第一条带的条带头中,
    所述第二类参考图像集的信息包括:作为所述第一条带中的图像块的长期参考图像的配置参数。
  16. 根据权利要求15所述的编码方法,其特征在于,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,包括:
    不输出图像的数量和不输出图像的图像顺序序号。
  17. 根据权利要求16所述的编码方法,其特征在于,所述作为所述第一 条带中的图像块的长期参考图像的配置参数中,还包括:
    用于指示不输出图像是否作为所述第一条带的长期参考图像的第一标识符。
  18. 根据权利要求17所述的编码方法,其特征在于,所述对待编码图像进行编码以生成码流,包括:
    当所述第一标识符指示所述不输出图像中的第四不输出图像不作为所述第一条带中的图像块的长期参考图像时,将所述第四不输出图像从参考图像缓冲区中删除。
  19. 根据权利要求1至18中任一项所述的编码方法,其特征在于,所述码流的所述至少一个不输出图像中包括第五不输出图像和第六不输出图像,所述第六不输出图像在所述第五不输出图像之后完成编码;
    所述对待编码图像进行编码以生成码流,包括:
    以所述第五不输出图像作为长期参考图像,对编码顺序位于所述第一不输出图像之后且位于所述第六不输出图像之前的所述输出图像进行编码。
  20. 根据权利要求1至19中任一项所述的编码方法,其特征在于,所述编码方法还包括:
    根据编码顺序位于所述不输出图像之前的多个图像的图像块,构造所述不输出图像。
  21. 根据权利要求20任一项所述的编码方法,其特征在于,所述根据编码顺序位于所述不输出图像之前的多个图像的图像块,构造所述不输出图像,包括:
    基于原始图像,根据所述多个图像更新所述原始图像的图像块;
    当被更新的图像块的数量大于或等于预设阈值时,将更新后的原始图像作为所述不输出图像。
  22. 根据权利要求21任一项所述的编码方法,其特征在于,所述原始图像为帧内预测图像。
  23. 根据权利要求1至22中任一项所述的编码方法,其特征在于,所述不输出图像的编码数据中包括用于指示不对所述不输出图像进行输出的第二标识符。
  24. 根据权利要求1至23中任一项所述的编码方法,其特征在于,所述不输出图像包括以下至少一种:长期参考图像、构造帧、短期参考图像、构 造的长期参考图像。
  25. 一种解码方法,其特征在于,包括:
    接收码流,所述码流中包括不输出图像和输出图像的待解码数据,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;
    对所述码流进行解码。
  26. 根据权利要求25所述的编码方法,其特征在于所述输出图像中,至少部分显示顺序相邻的两个输出图像的图像顺序序号的差相等
  27. 根据权利要求25或26所述的解码方法,其特征在于,所述显示顺序相邻的任意两个输出图像的图像顺序序号的差是2。
  28. 根据权利要求25至27中任一项所述的解码方法,其特征在于,所述待编码图像包括第二不输出图像,所述码流中包括用于指示编码所述第二不输出图像所使用的第一类参考图像集的信息,所述第一类参考图像集包括短期参考图像。
  29. 根据权利要求28所述的解码方法,其特征在于,所述码流的序列头中包括至少一帧短期参考图像的配置参数与索引的对应关系;
    所述第一类参考图像集的信息包括:
    用于指示所述第二不输出图像所使用的短期参考图像的配置参数对应的索引。
  30. 根据权利要求28所述的解码方法,其特征在于,所述第一类参考图像集的信息包括:
    用于指示所述第二不输出图像所使用的短期参考图像的配置参数。
  31. 根据权利要求29或30所述的解码方法,其特征在于,所述第一类参考图像集的信息位于所述第二不输出图像的条带头内。
  32. 根据权利要求29至31中任一项所述的解码方法,其特征在于,所述第二不输出图像所使用的短期参考图像的配置参数包括:
    所述第二不输出图像所使用的短期参考图像的图像顺序序号相对于所述第二不输出图像的图像顺序序号的偏移。
  33. 根据权利要求25至32中任一项所述的解码方法,其特征在于,所 述码流中包括用于指示编码图像所使用的第二类参考图像集的信息,所述第二类参考图像集包括长期参考图像。
  34. 根据权利要求33所述的解码方法,其特征在于,所述第二类参考图像集的信息位于所述码流的序列头中,
    所述第二类参考图像集的信息包括:
    第三不输出图像的图像顺序序号,所述第三不输出图像作为所述序列头对应的序列中的图像的图像块的长期参考图像。
  35. 根据权利要求33或34所述的解码方法,其特征在于,所述第二类参考图像集的信息位于所述码流的图像的第一条带的条带头中,
    所述第二类参考图像集的信息包括:作为所述第一条带中的图像块的长期参考图像的配置参数。
  36. 根据权利要求35所述的解码方法,其特征在于,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,包括:
    不输出图像的数量和不输出图像的图像顺序序号。
  37. 根据权利要求36所述的解码方法,其特征在于,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,还包括:
    用于指示不输出图像是否作为所述第一条带的长期参考图像的第一标识符。
  38. 根据权利要求37所述的解码方法,其特征在于,所述对所述码流进行解码,包括:
    当所述第一标识符指示所述不输出图像中的第四不输出图像不作为所述第一条带中的图像块的长期参考图像时,将所述第四不输出图像从参考图像缓冲区中删除。
  39. 根据权利要求25至38中任一项所述的解码方法,其特征在于,所述码流的所述至少一个不输出图像中包括第五不输出图像和第六不输出图像,所述第六不输出图像在所述第五不输出图像之后完成解码;
    所述对所述码流进行解码,包括:
    以所述第五不输出图像作为长期参考图像,对待解码顺序位于所述第一不输出图像之后且位于所述第六不输出图像之前的所述输出图像进行解码。
  40. 根据权利要求25至39中任一项所述的解码方法,其特征在于,所述不输出图像的编码数据中包括用于指示不对所述不输出图像进行输出的 第二标识符。
  41. 根据权利要求25至40中任一项所述的解码方法,其特征在于,所述不输出图像包括以下至少一种:长期参考图像、构造帧、短期参考图像、构造的长期参考图像。
  42. 一种编码设备,其特征在于,所述编码设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器执行所述计算机指令时,使得所述编码设备执行以下步骤:
    对待编码图像进行编码以生成码流,所述待编码图像包括不输出图像和输出图像,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;
    发送所述码流。
  43. 根据权利要求42所述的编码设备,其特征在于,所述输出图像中,至少部分显示顺序相邻的两个输出图像的图像顺序序号的差相等。
  44. 根据权利要求42或43所述的编码设备,其特征在于,所述显示顺序相邻的任意两个输出图像的图像顺序序号的差是2。
  45. 根据权利要求42至44中任一项所述的编码设备,其特征在于,所述处理器还用于执行所述计算机指令,使得所述编码设备在所述对待编码图像进行编码以生成码流之前,还执行以下步骤:
    将所述待编码图像划分为多个图像组,所述图像组由单独的帧内预测图像组成,或者由多个帧间预测图像组成。
  46. 根据权利要求42至45中任一项所述的编码设备,其特征在于,所述待编码图像包括第一不输出图像,所述第一不输出图像的编码顺序在第一图像组之后且在第二图像组之前。
  47. 根据权利要求46所述的编码设备,其特征在于,所述处理器执行对待编码图像进行编码以生成码流的计算机指令,使得所述编码设备具体执行以下步骤:
    参考与所述第一图像组中的最后一个图像所使用的短期参考图像相同的短期参考图像,对所述第一不输出图像进行编码。
  48. 根据权利要求46所述的编码设备,其特征在于,所述处理器执行对 待编码图像进行编码以生成码流的计算机指令,使得所述编码设备具体执行以下步骤:
    参考与所述第二图像组中的第一个图像所使用的短期参考图像相同的短期参考图像,对所述第一不输出图像进行编码。
  49. 根据权利要求42至48中任一项所述的编码设备,其特征在于,所述待编码图像包括第二不输出图像,所述码流中包括用于指示编码所述第二不输出图像所使用的第一类参考图像集的信息,所述第一类参考图像集包括短期参考图像。
  50. 根据权利要求49所述的编码设备,其特征在于,所述码流的序列头中包括至少一帧短期参考图像的配置参数与索引的对应关系;
    所述第一类参考图像集的信息包括:
    用于指示所述第二不输出图像所使用的短期参考图像的配置参数对应的索引。
  51. 根据权利要求49所述的编码设备,其特征在于,所述第一类参考图像集的信息包括:
    用于指示所述第二不输出图像所使用的短期参考图像的配置参数。
  52. 根据权利要求50或51所述的编码设备,其特征在于,所述第一类参考图像集的信息位于所述第二不输出图像的条带头内。
  53. 根据权利要求50至52中任一项所述的编码设备,其特征在于,所述第二不输出图像所使用的短期参考图像的配置参数包括:
    所述第二不输出图像所使用的短期参考图像的图像顺序序号相对于所述第二不输出图像的图像顺序序号的偏移。
  54. 根据权利要求42至53中任一项所述的编码设备,其特征在于,所述码流中包括用于指示编码图像所使用的第二类参考图像集的信息,所述第二类参考图像集包括长期参考图像。
  55. 根据权利要求54所述的编码设备,其特征在于,所述第二类参考图像集的信息位于所述码流的序列头中,
    所述第二类参考图像集的信息包括:
    第三不输出图像的图像顺序序号,所述第三不输出图像作为所述序列头对应的序列中的图像的图像块的长期参考图像。
  56. 根据权利要求54或55所述的编码设备,其特征在于,所述第二类 参考图像集的信息位于所述码流的图像的第一条带的条带头中,
    所述第二类参考图像集的信息包括:作为所述第一条带中的图像块的长期参考图像的配置参数。
  57. 根据权利要求56所述的编码设备,其特征在于,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,包括:
    不输出图像的数量和不输出图像的图像顺序序号。
  58. 根据权利要求57所述的编码设备,其特征在于,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,还包括:
    用于指示不输出图像是否作为所述第一条带的长期参考图像的第一标识符。
  59. 根据权利要求58所述的编码设备,其特征在于,所述处理器执行对待编码图像进行编码以生成码流的计算机指令,使得所述编码设备具体执行以下步骤:
    当所述第一标识符指示所述不输出图像中的第四不输出图像不作为所述第一条带中的图像块的长期参考图像时,将所述第四不输出图像从参考图像缓冲区中删除。
  60. 根据权利要求42至59中任一项所述的编码设备,其特征在于,所述码流的所述至少一个不输出图像中包括第五不输出图像和第六不输出图像,所述第六不输出图像在所述第五不输出图像之后完成编码;
    所述处理器执行对待编码图像进行编码以生成码流的计算机指令,使得所述编码设备具体执行以下步骤:
    以所述第五不输出图像作为长期参考图像,对编码顺序位于所述第一不输出图像之后且位于所述第六不输出图像之前的所述输出图像进行编码。
  61. 根据权利要求42至60中任一项所述的编码设备,其特征在于,所述处理器还用于执行所述计算机指令,使得所述编码设备执行以下步骤:
    根据编码顺序位于所述不输出图像之前的多个图像的图像块,构造所述不输出图像。
  62. 根据权利要求61任一项所述的编码设备,其特征在于,所述处理器执行根据编码顺序位于所述不输出图像之前的多个图像的图像块,构造所述不输出图像,使得所述编码设备具体执行以下步骤:
    基于原始图像,根据所述多个图像更新所述原始图像的图像块;
    当被更新的图像块的数量大于或等于预设阈值时,将更新后的原始图像作为所述不输出图像。
  63. 根据权利要求62任一项所述的编码设备,其特征在于,所述原始图像为帧内预测图像。
  64. 根据权利要求42至63中任一项所述的编码设备,其特征在于,所述不输出图像的编码数据中包括用于指示不对所述不输出图像进行输出的第二标识符。
  65. 根据权利要求42至64中任一项所述的编码设备,其特征在于,所述不输出图像包括以下至少一种:长期参考图像、构造帧、短期参考图像、构造的长期参考图像。
  66. 一种解码设备,其特征在于,所述解码设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器执行所述计算机指令时,使得所述解码设备执行以下步骤:
    接收码流,所述码流中包括不输出图像和输出图像的待解码数据,所述输出图像中显示顺序相邻的任意两个输出图像的图像顺序序号的差大于1,所述输出图像中的任意两个输出图像的图像顺序序号的差与所述任意两个输出图像的拍摄时间间隔的比值相同,至少一个所述不输出图像的图像顺序序号在显示顺序相邻的两个输出图像的图像顺序序号之间;
    对所述码流进行解码。
  67. 根据权利要求66所述的解码设备,其特征在于,所述输出图像中,至少部分显示顺序相邻的两个输出图像的图像顺序序号的差相等。
  68. 根据权利要求66或67所述的解码设备,其特征在于,所述显示顺序相邻的任意两个输出图像的图像顺序序号的差是2。
  69. 根据权利要求66至68中任一项所述的解码设备,其特征在于,所述待编码图像包括第二不输出图像,所述码流中包括用于指示编码所述第二不输出图像所使用的第一类参考图像集的信息,所述第一类参考图像集包括短期参考图像。
  70. 根据权利要求69所述的解码设备,其特征在于,所述码流的序列头中包括至少一帧短期参考图像的配置参数与索引的对应关系;
    所述第一类参考图像集的信息包括:
    用于指示所述第二不输出图像所使用的短期参考图像的配置参数对应 的索引。
  71. 根据权利要求69所述的解码设备,其特征在于,所述第一类参考图像集的信息包括:
    用于指示所述第二不输出图像所使用的短期参考图像的配置参数。
  72. 根据权利要求70或71所述的解码设备,其特征在于,所述第一类参考图像集的信息位于所述第二不输出图像的条带头内。
  73. 根据权利要求70至72中任一项所述的解码设备,其特征在于,所述第二不输出图像所使用的短期参考图像的配置参数包括:
    所述第二不输出图像所使用的短期参考图像的图像顺序序号相对于所述第二不输出图像的图像顺序序号的偏移。
  74. 根据权利要求66至73中任一项所述的解码设备,其特征在于,所述码流中包括用于指示编码图像所使用的第二类参考图像集的信息,所述第二类参考图像集包括长期参考图像。
  75. 根据权利要求74所述的解码设备,其特征在于,所述第二类参考图像集的信息位于所述码流的序列头中,
    所述第二类参考图像集的信息包括:
    第三不输出图像的图像顺序序号,所述第三不输出图像作为所述序列头对应的序列中的图像的图像块的长期参考图像。
  76. 根据权利要求74或75所述的解码设备,其特征在于,所述第二类参考图像集的信息位于所述码流的图像的第一条带的条带头中,
    所述第二类参考图像集的信息包括:作为所述第一条带中的图像块的长期参考图像的配置参数。
  77. 根据权利要求76所述的解码设备,其特征在于,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,包括:
    不输出图像的数量和不输出图像的图像顺序序号。
  78. 根据权利要求77所述的解码设备,其特征在于,所述作为所述第一条带中的图像块的长期参考图像的配置参数中,还包括:
    用于指示不输出图像是否作为所述第一条带的长期参考图像的第一标识符。
  79. 根据权利要求78所述的解码设备,其特征在于,所述处理器执行对所述码流进行解码的计算机指令,使得所述解码设备具体执行以下步骤:
    当所述第一标识符指示所述不输出图像中的第四不输出图像不作为所述第一条带中的图像块的长期参考图像时,将所述第四不输出图像从参考图像缓冲区中删除。
  80. 根据权利要求66至79中任一项所述的解码设备,其特征在于,所述码流的所述至少一个不输出图像中包括第五不输出图像和第六不输出图像,所述第六不输出图像在所述第五不输出图像之后完成解码;
    所述处理器执行对所述码流进行解码的计算机指令,使得所述解码设备具体执行以下步骤:
    以所述第五不输出图像作为长期参考图像,对待解码顺序位于所述第一不输出图像之后且位于所述第六不输出图像之前的所述输出图像进行解码。
  81. 根据权利要求66至80中任一项所述的解码设备,其特征在于,所述不输出图像的编码数据中包括用于指示不对所述不输出图像进行输出的第二标识符。
  82. 根据权利要求66至81中任一项所述的解码设备,其特征在于,所述不输出图像包括以下至少一种:长期参考图像、构造帧、短期参考图像、构造的长期参考图像。
  83. 一种计算机可读存储介质,其特征在于,其上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求1至24中任一项所述的方法。
  84. 一种计算机可读存储介质,其特征在于,其上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求25至41中任一项所述的方法。
PCT/CN2018/103692 2018-08-31 2018-08-31 编码方法、解码方法、编码设备和解码设备 Ceased WO2020042191A1 (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2021510685A JP2021535671A (ja) 2018-08-31 2018-08-31 符号化方法、復号方法、符号化機器、復号機器、およびコンピュータプログラム
CN201880042495.0A CN110832868A (zh) 2018-08-31 2018-08-31 编码方法、解码方法、编码设备和解码设备
PCT/CN2018/103692 WO2020042191A1 (zh) 2018-08-31 2018-08-31 编码方法、解码方法、编码设备和解码设备
EP18931956.9A EP3846471A4 (en) 2018-08-31 2018-08-31 ENCODING METHOD, DECODING METHOD, ENCODING APPARATUS, AND DECODING APPARATUS
US17/187,794 US11368679B2 (en) 2018-08-31 2021-02-27 Encoding method, decoding method, encoding apparatus, and decoding apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/103692 WO2020042191A1 (zh) 2018-08-31 2018-08-31 编码方法、解码方法、编码设备和解码设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/187,794 Continuation US11368679B2 (en) 2018-08-31 2021-02-27 Encoding method, decoding method, encoding apparatus, and decoding apparatus

Publications (1)

Publication Number Publication Date
WO2020042191A1 true WO2020042191A1 (zh) 2020-03-05

Family

ID=69547526

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/103692 Ceased WO2020042191A1 (zh) 2018-08-31 2018-08-31 编码方法、解码方法、编码设备和解码设备

Country Status (5)

Country Link
US (1) US11368679B2 (zh)
EP (1) EP3846471A4 (zh)
JP (1) JP2021535671A (zh)
CN (1) CN110832868A (zh)
WO (1) WO2020042191A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI793629B (zh) 2020-06-10 2023-02-21 寰發股份有限公司 視訊處理方法及裝置
US11711513B2 (en) * 2020-06-11 2023-07-25 Hfi Innovation Inc. Methods and apparatuses of coding pictures partitioned into subpictures in video coding systems
CN117999785A (zh) * 2021-09-28 2024-05-07 Oppo广东移动通信有限公司 视频压缩方法及系统
CN117793367B (zh) * 2024-02-26 2024-06-04 此芯科技(上海)有限公司 一种图像编码方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1767655A (zh) * 2005-10-18 2006-05-03 宁波大学 一种多视点视频图像视差估计的方法
CN105163117A (zh) * 2015-08-26 2015-12-16 华为技术有限公司 一种图像编码、处理方法及装置
CN105208390A (zh) * 2014-06-30 2015-12-30 杭州海康威视数字技术股份有限公司 视频编码的码率控制方法及其系统
CN108243339A (zh) * 2016-12-27 2018-07-03 浙江大学 图像编解码方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080285938A1 (en) * 2004-03-15 2008-11-20 Yasuhiro Nakamura Recording/Replaying/Editing Device
US20070127578A1 (en) * 2005-12-02 2007-06-07 Dijia Wu Low delay and small memory footprint picture buffering
JP5056560B2 (ja) * 2008-03-17 2012-10-24 富士通株式会社 符号化装置、復号化装置、符号化方法および復号化方法
JP5635896B2 (ja) * 2010-02-18 2014-12-03 キヤノン株式会社 画像入力装置及び画像検証装置並びにそれらの制御方法
US10034018B2 (en) * 2011-09-23 2018-07-24 Velos Media, Llc Decoded picture buffer management
KR20130058584A (ko) * 2011-11-25 2013-06-04 삼성전자주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치
US9325992B2 (en) * 2013-01-07 2016-04-26 Qualcomm Incorporated Signaling of clock tick derivation information for video timing in video coding
CN103024397B (zh) * 2013-01-07 2015-07-08 华为技术有限公司 确定时域运动矢量预测值的方法和装置
PT3119089T (pt) * 2013-01-16 2018-08-03 Ericsson Telefon Ab L M Descodificador e codificador e métodos para codificação de uma sequência de vídeo
US9756355B2 (en) * 2014-06-20 2017-09-05 Qualcomm Incorporated Value ranges for syntax elements in video coding
WO2016026526A2 (en) * 2014-08-20 2016-02-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Video composition
US10630992B2 (en) * 2016-01-08 2020-04-21 Samsung Electronics Co., Ltd. Method, application processor, and mobile terminal for processing reference image

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1767655A (zh) * 2005-10-18 2006-05-03 宁波大学 一种多视点视频图像视差估计的方法
CN105208390A (zh) * 2014-06-30 2015-12-30 杭州海康威视数字技术股份有限公司 视频编码的码率控制方法及其系统
CN105163117A (zh) * 2015-08-26 2015-12-16 华为技术有限公司 一种图像编码、处理方法及装置
CN108243339A (zh) * 2016-12-27 2018-07-03 浙江大学 图像编解码方法及装置

Also Published As

Publication number Publication date
CN110832868A (zh) 2020-02-21
JP2021535671A (ja) 2021-12-16
US20210185309A1 (en) 2021-06-17
US11368679B2 (en) 2022-06-21
EP3846471A4 (en) 2022-02-23
EP3846471A1 (en) 2021-07-07

Similar Documents

Publication Publication Date Title
US12120360B2 (en) Tile signaling in video coding
US11350109B2 (en) Combination of inter-prediction and intra-prediction in video coding
ES2776147T3 (es) Construcción de lista de imágenes de referencia para codificación de video
CN113170165B (zh) 参考图像列表结构的候选指示
US9648321B2 (en) Coding picture order count values identifying long-term reference frames
US11368679B2 (en) Encoding method, decoding method, encoding apparatus, and decoding apparatus
WO2019192152A1 (zh) 获取视频图像运动矢量的方法与装置
EP4082207B1 (en) Picture header intra random access picture and gradual decoder refresh signaling in video coding
JP2014511653A (ja) 復号ピクチャバッファ管理
JP7682343B2 (ja) 長方形スライスのサイズ情報を選択的に符号化する画像符号化/復号化方法及び装置、並びにビットストリームを伝送する方法
US20250254302A1 (en) Image encoding/decoding method and apparatus for limiting size of chroma block, and method for transmitting bitstream
JP7835805B2 (ja) フィルタ利用可能情報を選択的にシグナリングする画像符号化/復号化方法及び装置、並びにビットストリームを伝送する方法
CN113906756A (zh) 视频编码和解码中的空间可扩展性支持
US9812095B2 (en) Video processing method including managing a reference picture list and video system therefore
WO2019227491A1 (zh) 编码、解码方法及编码、解码设备
US20250088629A1 (en) Image encoding and decoding method and device for limiting partition condition of chroma block, and method for transmitting bitstream
KR102930023B1 (ko) Dpb 파라미터의 개수 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
CN107005704B (zh) 处理编码视频数据的方法和装置及生成编码视频数据的方法和装置
BR112016029356B1 (pt) Método para decodificar e codificar e dispositivo para decodificar dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc)

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: 18931956

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021510685

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018931956

Country of ref document: EP

Effective date: 20210331